File Identification and Allocation
6.2.4 File Identification and Allocation
Another popular term for the filesystem creation is formatting the disk or partition. In the PC world this is the only official term. In UNIX context, formatting literally means to create filesystem structures only, primarly the superblock. The created filesystem itself is absolutely empty — there is no single−user data in it. To compare with the filing closet and cabinets in the office: all drawers are now equipped with needed accessories; carriers and holders are there, as well as empty labels for easy identification of documents. These accessories take up some available space in the cabinets, but without them it would be very hard to file our papers. The UNIX counterpart for the mentioned accessories is the superblock. The superblock contains the filesystem structures system data needed for user data management. All superblock structures are free and ready for use. The superblock consumes a certain amount of the storage space to keep its system data. Keeping in mind the previous discussion, it becomes clear: Why once we reformat create a filesystem a disk or partition we lose all previously stored data. It does not mean that this data was purged. All stored data blocks remain unchanged, but the new superblock is now created. All system data in the old superblock was erased. UNIX does not know how to find this data. • 148 Let us see now in more detail how the UNIX filesystem identifies and allocates files within the corresponding storage space. It is worthwhile to mention that we are still staying within the physical filesystem layout boundaries. 6.2.4.1 Index Node inode The most important individual entity in the filesystem superblock is the inode. Inode is a shorter, more convenient, name for the index node. Each file in the filesystem is completely described by its inode. An inode includes all of the files relevant data except the file name. File names are contained in the directory where the files reside. The content of each directory includes the file names with the references to the corresponding inodes. In this way, UNIX is able to find any file by scanning the files directory until the file name matches. Afterward only the corresponding inode is used to access the file on the disk. A file can have several different names because several file names can be referenced to the same inode. They can appear in the same or different directories, but must remain in the same filesystem. These references are known as hard links see Chapter 2. An inode contains around 200 bytes, enough space to uniquely identify a file. An inode structure is presented in Figure 6.3. The type and access mode for the file The files owner user and group The time that file was last read and written and the inode was last updated The size of the file in bytes The total number of physical blocks used by the file The number of references to the file links Direct pointers for the 12 first data blocks used by the file The single indirect pointer to a single indirect block of pointers to data blocks used by the file The double indirect pointer to a double indirect block of pointers to data blocks used by the file The triple indirect pointer to a triple indirect block of pointers to data blocks used by the file Figure 6.3: The inode structure. The first part of the inode contains all information about the file. Most of the information we know from the long file listing the ls −l command. UNIX opens and reads the inode, and learns about the files type, ownership, and permissions. Based on this information, UNIX knows how to proceed with the file itself. Do not forget that UNIX processes different file types in a different way. Once we are familiar with the contents of an inode, many of the already discussed issues become clear — for example, why hard links are restrained to the same filesystem, or where the system finds information for long listing of files, or how the fsck command can check and even fix problems in the filesystem, and many others. The inode number, starting from one and increasing, identifies an inode. An identified inode must be allocated in the disk space before it can be used by the system. To allocate an inode is easy, because each inode is well defined within the superblock and the superblock is always stored in the reserved disk space well known to the system. 149 It is much tougher job to locate a file in the disk space. A file can contain an arbitrary number of data blocks, from a single block up to a huge number of blocks. These blocks could be spread over the whole disk space. Again this is the inode that precisely allocates the file itself. The second part of the inode contains a number of direct and indirect pointers to point to the location of each data block that belongs to this file. For most UNIX flavors the pointers are 32 bits long 4B, and we will assume that length in the discussion that follows. An inode can directly point to as many as 12 data blocks consumed by the file. Assuming the block size of 4 KB or 8 KB, this means a file as large as 48 KB or 96 KB is directly accessible. For larger files, indirect pointers must be used. A single indirect block contains additional pointers: a 4 KB block contains up to 1 K pointers, while a 8 KB block contains up to 2 K pointers. A double indirect block contains, or, better to say, points to, millions of new pointers. And finally a triple indirect pointer can be used in the case of extremely large files. If a file is very small, the file data is stored directly in the inode. Figure 6.4 illustrates how this allocation mechanism works. 150 Figure 6.4: File layout on a disk. A 32−bit 4 B pointer can uniquely identify one block among as many as 4 G 4 billion blocks. This is, simply, the address capability of a 32−bit pointer. More precisely, assuming a block size of 4 KB or 8 KB, the maximum size of the reachable disk space i.e., the filesystem is, respectively, 4 G × 4KB= 16 TB or 4 G × 8KB= 32 TB. Beyond that size, the block must be increased 16 KB or more during the filesystem creation. This is one of the options of the mkfs command. By the way, UNIX checks all specified options and, in the case of an inappropriate option value, cancels the command execution. However, disk blocks could be smaller than in this example, and they would still be correct — todays disk sizes are still in the range of several dozens GB. 1516.2.5 Filesystem Performance Issues
Parts
» Unix Administration. 7485KB Mar 29 2010 05:04:17 AM
» UNIX Operating System UNIX — Introductory Notes
» Berkeley Standard Distribution — BSD UNIX System V or ATT UNIX
» System Administrators Job UNIX System and Network Administration
» Computing Policies UNIX System and Network Administration
» Legal Acts Administration Guidelines
» Code of Ethics Administration Guidelines
» USENIX System Administrators Guild — SAGE
» In This Book UNIX System and Network Administration
» Introduction The Unix Model — Selected Topics
» Access Classes File ProtectionFile Access
» Default File Mode File ProtectionFile Access
» Plain Regular File Socket Named Pipe
» Special File Names Special File Creation
» Process Types Process Attributes
» Process Life Cycles Processes
» System V ATT Flavored ps Command
» Destroying Processes The UNIX kill command will eliminate a process entirely:
» Becoming a Superuser Communicating with Other Users
» The man Command UNIX Online Documentation
» The uptime Command The uptime command displays:
» Personal Documentation UNIX Administration Starters
» Shell Script Execution UNIX Shell Scripts
» Shell Variables UNIX Shell Scripts
» Double Command−Line Scanning
» Introductory Notes System Startup and Shutdown
» The Bootstrap Program System Startup
» The Kernel Execution System Startup
» System States System Startup
» The Outlook of a Startup Procedure
» Initialization Scripts System Startup
» The BSD rc Scripts BSD Initialization Sequence
» BSD−Like Initialization System V Initialization
» An Example Shutdown Procedures
» Introduction to the UNIX Filesystem
» System V Filesystem Directory Organization
» Mounting a Filesystem home, users
» Dismounting a Filesystem home, users
» Automatic Filesystem Mounting Removable Media Management
» BSD Filesystem Configuration File
» Filesystem Types A Few Other Filesystem Issues
» Swap Space — Paging and Swapping
» Loopback Virtual Filesystem A Few Other Filesystem Issues
» Display Filesystem Statistics: The df Command
» Checking Filesystems: The fsck Command
» Introduction UNIX Filesystem Layout
» Disk Partitions Physical Filesystem Layout
» Filesystem Structures Physical Filesystem Layout
» The mkfs Command Filesystem Creation
» File Identification and Allocation
» File Storage vs. File Transfer
» Reserved Free Space Filesystem Performance Issues
» Logical Volume Manager — AIX Flavor
» Logical Volume Manager — Solaris Flavor
» Redundant Array of Inexpensive Disks RAID
» The Volume Snapshot Snapshot
» The Filesystem Snapshot Snapshot
» Virtual UNIX Filesystem Logical Filesystem Layout
» Disk Space Upgrade UNIX Filesystem Layout
» User Database — File etcpasswd
» Initialization Template Files UNIX Login Initialization
» User Login Initialization Files
» Systemwide Login Initialization Files
» Restricted User Accounts Users and Secondary Groups
» Assigning User Passwords Standard UNIX Users and Groups
» Managing Disk Usage by Users
» System V Accounting Accounting
» AIX−Flavored Accounting Accounting
» Physical Security Passwords UNIX Lines of Defense
» File Permissions UNIX Lines of Defense
» Backups Password Encryption UNIX Lines of Defense
» Setting Password Restrictions UNIX Lines of Defense
» The Wheel Group Secure Terminals — Other Approaches
» History of the Root Account Tracking User Activities
» The syslogd Daemon The Concept of System Logging
» The Configuration File etcsyslog.conf
» Linux Logging Enhancements The logger Command
» Testing System Logging System Logging Configuration
» The last Command Limiting the Growth of Log Files
» BSD Printing Subsystem UNIX Printing Subsystem
» The lp, lpstat, and cancel Commands
» The etcprintcap File BSD Printer Configuration and the Printer Capability Database
» Filters BSD Printer Configuration and the Printer Capability Database
» The Printer Database Directory Hierarchy on System V
» Setting a Remote Printer on HP−UX
» BSD and AIX Cross−Printing Solaris and BSD Cross−Printing
» Third−Party Printer Spooling Systems
» The tput Command The tset, tput, and stty Commands
» The stty Command The tset, tput, and stty Commands
» The tar Command Tape−Related Commands
» The cpio Command Tape−Related Commands
» The dd Command Tape−Related Commands
» The mt Command Magnetic Tape Devices and Special Device Files
» The SVR3 and SVR4 backup Commands
» The fbackup Command Backup and Dump Commands
» The dumpufsdump Command Backup and Dump Commands
» Interactive Restore The restore Commands
» The frecover Command Restoring Files from a Backup
» Tape Control UNIX Backup and Restore
» The NTP Daemon Network Time Distribution
» The crontab Files Network Time Distribution
» The crontab Command Network Time Distribution
» Linux Approach Network Time Distribution
» Programs Scheduled for a Specific Time
» UNIX and Networking Network Fundamentals
» TCPIP and the Internet ISO OSI Reference Model
» TCPIP Protocol Architecture Computer Networks
» Internet Protocol IP Internet Layer and IP Protocol
» Network Access Layer Transport Layer and TCP and UDP Protocols
» Application Layer TCPIP Layers and Protocols
» IP Address Classes Data Delivery
» Dynamic Routing Internet Routing
» Protocols, Ports, and Sockets
» UNIX Database Files Multiplexing
» The arp Command Address Resolution ARP
» The portmapper Daemon The etcrpc File
» The ifconfig Command Configuring the Network Interface
» The netstat Command Configuring the Network Interface
» The inetd Daemon Super Internet Server
» Further Improvements and Development
» Host Names and Addresses Domain Name Service DNS
» The Local Host Table — etchosts
» Handling the NIC Host Table — A Journey into the Past
» Other Resolver Parameters BIND Configuration
» Name Servers UNIX Name Service — BIND
» The Configuration File etcnamed.boot
» The named.local File The named.cache file
» Subdomains and Parenting BIND Version 8.X.X
» The nslookup Interactive Mode
» A Few Examples of nslookup Usage
» Purpose and Concepts Network Information Service NIS
» To Create an NIS Client NIS Domain Name
» The etcnetgroup File DatabasesNIS Maps
» Security Issues NIS Management
» The showmount Command Mounting Remote Filesystems
» An Example The Automount Maps
» The rlogin Command The rcp Command
» The HOME.rhosts File Using UNIX r−Commands — An Example
» SSH Configuration Secure Shell SSH
» Root Access SSH Installation and User Access Setup
» SSH — Version 2 Secure Shell SSH
» Simple Mail Transport Protocol SMTP
» Rewriting an E−mail Address Pattern Matching
» Address Transformation The Parsing of E−mail Addresses
» Testing Rewrite Rules The sendmail −bt Command
» The Debugging Level Checking the Mail Queue
» Mail Subcommands The Mail Program and .mailrc File
» POP Transactions Post Office Protocol POP
» Internet Message Access Protocol IMAP
» Finger Common UNIX Network Applications
» The ping Command Host Connectivity
» The traceroute Command Host Connectivity
» The X Administration Philosophy
» Window Managers An Introduction to the X Window System
» xdm Configuration Files The X Display Managers
» Vendor−Specific X Flavors — a Configuration Example
» XDMCP Queries The Xaccess File
» Other Access Control Mechanisms
» Components of the xdm−Based User X Environment
» Other Startup Methods The User X Environment
» A Permanent X11 Installation
» Introduction to Kernel Reconfiguration
» Kernel Configuration Database Kernel Reconfiguration
» The config Command BSD−Like Kernel Configuration Approach
» HP−UX 10.x Kernel Configuration
» UNIX and Modems Introduction to Modems
» Terminal Lines and Modem Control
» C−Kermit Third−Party Communication Software
» UUCP Versions UUCP Chat−Transfer Session
» The UUCP Daemons UUCP Commands, Daemons, and Related Issues
» The UUCP Spool Directories and Files
» Additional Security in BNU UUCP
» Additional Security in Version 2 UUCP
» Intranet vs. Internet Introduction to Intranet
» Intranet Design Approach Introduction to Intranet
» Life Cycle of a Virus Virus Types
» The Viruswall Implementation Viruswalls
» Application Proxies SOCKS Proxies
» Web Services Intranet Front−End Services
» Other External Services Intranet Front−End Services
» Network Infrastructure and Desktops
» Dynamic Host Configuration Protocol DHCP
» UNIX and Not−UNIX Platform Integration
» HP−UX Installation UNIX Installation Procedures
» Linux Installation UNIX Installation Procedures
» Solaris Patch Installation HP−UX Patch Installation
» Solaris and Lost Root Password HP−UX and Lost Root Password
» Solaris Procedure to Create an Alternate Boot Partition
» Solaris Recovery of the Failed Mirrored Boot Disk
Show more