Resource Sharing
Part of Networking
Using networks to share printers, storage, processing, and other resources among multiple computers.
Why This Matters
The original economic justification for local area networks was resource sharing. In the early days of networking, printers, hard drives, and other peripherals were expensive — too expensive for every computer to have its own. By sharing these resources over a network, an organization could spread the cost of expensive equipment across many users.
While hardware has become much cheaper, resource sharing remains valuable. A fast printer shared among twenty people is cheaper than twenty slower printers. A large, reliable storage server shared among a team is cheaper and more manageable than individual storage on every workstation. Processing power for computationally intensive tasks can be shared among users who occasionally need it rather than sitting idle most of the time.
In a reconstruction context, resource sharing is especially relevant because advanced hardware is scarce. A single high-quality printer, a large storage device, or a powerful server machine serves an entire organization if the network infrastructure enables sharing.
Shared Storage: Network Attached Storage
Network Attached Storage (NAS) is a dedicated file server that provides shared storage to all users on a network. Users access the NAS through standard network file sharing protocols — it appears as a network drive that any authorized user can read and write.
The two dominant file sharing protocols are NFS (Network File System) and SMB/CIFS (Server Message Block / Common Internet File System). NFS is native to Unix/Linux systems. SMB is native to Windows. Modern implementations of both work on all major operating systems — Samba is the standard SMB implementation for Linux.
Setting up a basic NAS requires: a computer or dedicated appliance with enough storage capacity, network connectivity, and file sharing software. For a small organization, a regular computer running Linux with Samba provides effective shared storage at minimal cost. FreeNAS (now TrueNAS) is a dedicated NAS operating system that provides a management interface and additional features like RAID, snapshots, and backup.
RAID (Redundant Array of Independent Disks) protects against data loss from disk failure by distributing data across multiple disks with redundancy. RAID 1 mirrors data across two disks — if one fails, data is intact on the other. RAID 5 distributes data and parity across three or more disks — any single disk can fail without data loss. RAID provides redundancy but is not a backup — if data is corrupted or accidentally deleted, RAID preserves the corruption or deletion. Backups remain necessary.
Access control on shared storage requires user authentication. Each user has a username and password. Directories can be configured as: accessible to all authenticated users, accessible only to specific users, or accessible to specific groups of users. Sensible access control protects confidential data and prevents accidental deletion.
Shared Printing
A shared printer is accessible from any computer on the network. The standard protocol for network printing is IPP (Internet Printing Protocol), supported by modern printers and operating systems. CUPS (Common Unix Printing System) is the standard print spooler for Unix/Linux and provides IPP support.
To share a printer that is connected to one computer, install CUPS on that computer and configure it to share the printer. Other computers on the network can then discover and use the printer through IPP. Windows computers can also use SMB-shared printers.
Many modern printers have built-in network interfaces and run their own IPP server, making them directly accessible from any computer on the network without needing a dedicated print server computer.
Print queuing is an important feature of shared printing. When multiple users print simultaneously, jobs are queued and printed in order. Each user can check the queue status, cancel their own jobs, and be notified when a job is complete. This coordination is handled automatically by the print spooler software.
For environments with high printing demands, print accounting tracks who prints what to manage costs and quotas. CUPS supports basic accounting; more sophisticated quota management requires additional software.
Shared Computing: Remote Access to Processing Power
Some tasks require more processing power than a typical workstation provides: complex calculations, data analysis, simulations, image and video processing, document format conversion. Instead of requiring every workstation to have excess capacity for rare peak tasks, a powerful server can be shared for these tasks.
SSH (Secure Shell) is the standard mechanism for remote command-line access to a server. A user connects to the server’s command line, runs computationally intensive programs that execute on the server’s CPU and memory, and sees the results. The local workstation serves only as a terminal — the computation happens on the server.
For graphical applications, X11 forwarding over SSH transmits the graphical display from the server to the user’s local screen. This is slower than running the application locally (all graphical updates must traverse the network) but allows use of powerful applications on a shared server from any networked computer.
Job scheduling systems (such as SLURM or PBS) manage multiple users’ access to a shared high-performance computer. Users submit jobs (specification of what program to run and how much CPU/memory it needs) to a queue. The scheduler allocates resources among queued jobs, ensuring fair access and efficient utilization of the shared machine.
Shared Network Services
Several network services are themselves shared resources:
DHCP servers dynamically assign IP addresses to devices that connect to the network. Without a DHCP server, every device would need manual IP configuration — a significant administrative burden. The DHCP server maintains a pool of available addresses and assigns them to requesting devices, managing lease times and renewals automatically.
DNS servers resolve hostnames to IP addresses. A local DNS server caches frequently used answers, reducing query latency. It can also provide local name resolution — names for machines on the local network that are not registered in public DNS. For example, a local DNS server can resolve “fileserver.local” to the NAS machine’s IP address, allowing users to access it by name rather than memorizing an IP address.
Authentication servers centralize user credential management. Without a shared authentication system, each server maintains its own list of usernames and passwords — adding a new user requires updating every server, and a password change must be repeated everywhere. An LDAP (Lightweight Directory Access Protocol) server or a Windows Active Directory domain centralizes authentication so users have one username and password for all network services.
Time servers synchronize clocks across all machines. The NTP (Network Time Protocol) is the standard for this. Accurate time synchronization is essential for security systems (certificates have expiration times), distributed applications (log entries from multiple machines are useless if the timestamps are inconsistent), and coordination in general. A single NTP server that references an accurate time source (GPS, public NTP server) keeps all machines on the network synchronized.
Organizing Shared Resources
Effective resource sharing requires clear policies: who can access what, how much they can use, and what happens when resources are contested.
Access control should follow the principle of least privilege: each user and application has access only to the resources it needs, no more. Granting broad access is convenient but creates security risks — a compromised account with broad access can damage or expose much more than one with narrow access.
Quotas prevent any single user from monopolizing shared resources. Disk quotas limit storage consumption per user. Print quotas limit pages printed per period. CPU quotas in time-sharing systems limit computation consumed per user. Quotas must be set high enough that they do not interfere with legitimate use, but low enough to prevent accidental or malicious overconsumption.
Monitoring is the foundation for managing shared resources. Without visibility into utilization, you cannot tell whether resources are adequate, overloaded, or being misused. Track storage utilization, print volumes, and CPU utilization over time. Trends in these metrics predict when capacity will need to be expanded, enabling proactive rather than reactive infrastructure management.