Understanding of the Inode of Linux

Source: Internet
Author: User
Tags disk usage

Source: Linux Community Pvbutler

First, the question:
When creating a file in the/data partition of a Linux server, the system prompts for insufficient disk space, uses the df-h command to view the disk usage, finds that the/data partition uses only 66%, and has 12G of space left.
Second, the analysis of the problem:
Using Df-i to see the index node (inode) of the/data partition, the discovery is full (iused=100%), which prevents the system from creating new directories and files.

Inode into Chinese is the index node, each storage device (such as a hard disk) or storage device partition is formatted as a file system, there should be two parts, part of the inode, and the other part of the Block,block is used to store data. The inode is the information that is used to store this data, including file size, owner, attribution user group, read-write permission, and so on. The Inode indexes the information for each file, so there is a value for the inode. According to the instructions, the operating system can find the corresponding file by the Inode value.
The server's block, while remaining, but the inode is full, so when you create a new directory or file, the system prompts for insufficient disk space.

Third, Reason:
There are a very large number of small-byte cache files in the/data/cache directory, with no more blocks, but a lot of inode.
Four, the solution:
1. Delete some files in the/data/cache directory and release part of the inode from the/data partition.
2. Use a soft connection to connect the Newcache directory in the free partition/opt to the/data/cache, using the inode of the/OPT partition to alleviate the problem of insufficient/data partition Inode:
Ln-s/opt/newcache/data/cache
3, increase the space

I. Inode

The minimum storage unit for a hard disk is called "Sector" (Sector). Each sector is stored 512 bytes (equivalent to 0.5KB). When the operating system reads the hard disk, it does not read from one sector to the next, so it is too inefficient to read a "block" at a time, and each "block" consists of eight contiguous sector. This "block", composed of multiple sectors, is the smallest unit of file access. "Block" size, the most common is 4KB, file data are stored in the "block", you must also find a place to store the meta-information of the file, such as the creator of the file, the date of creation of the file, the size of the file, and so on. This area of stored file meta information is called Inode, and the Chinese name is "Index node". Each file has a corresponding inode, which contains some information about the file.

Ii. contents of the Inode

The inode contains the meta-information for the file, with the following content:

* Number of bytes in the file

* User ID of the owner of the file

* The group ID of the file

* file read, write, execute permissions

* File timestamp, total three: CTime refers to the time when the inode was last changed, mtime refers to the time when the file content was last changed, atime refers to the time when the file was last opened.

* Number of links, that is, how many filenames point to this inode

* Location of File data block

You can use the Stat command to view inode information for a file:

[Email protected]_server home]# Stat zabbix/
File: ' zabbix/'
size:4096 blocks:8 IO block:4096 Directory
device:803h/2051d inode:130647 Links:4
Access: (0700/drwx------) Uid: (500/zabbix) Gid: (500/zabbix)
access:2014-08-12 10:46:02.810999643 +0800
modify:2014-07-23 07:19:01.146989703 +0800
change:2014-07-23 07:19:01.146989703 +0800
[[Email Protected]_server home]#

All file information except the filename exists in the inode. (Why no file name, continue to see below)

Third, the size of the Inode

The inode also consumes hard disk space, so when the hard disk is formatted, the operating system automatically divides the hard disk into two zones. One is the data area, the file data is stored, and the other is the Inode area (inode table), which holds the information contained in the Inode.

The size of each inode node is typically 128 bytes or 256 bytes. The total number of inode nodes, given at the time of formatting, is usually set to one inode per 1KB or 2KB each. Assuming that the size of each inode node in a 1GB hard disk is 128 bytes, and one inode is set per 1KB, the Inode table will be about 128MB in size, accounting for 12.8% of the entire drive.

Use Df-i to see the total number of inode and the number of uses for each hard disk partition
[Email protected]_server ~]# df-i
Filesystem inodes iused IFree iuse% mounted on
/dev/sda3 1166880 103467 1063413 9%/
TMPFS 128806 4 128802 1%/DEV/SHM
/DEV/SDA1 51200 51162 1%/boot
/dev/sr0 0 0 0-/media/rhel_6.5 i386 Disc 1
[[Email Protected]_server ~]#

To view the size of each inode node
[Email protected]_server ~]# dumpe2fs-h/dev/sda3 | Grep-i "Inode Size"
DUMPE2FS 1.41.12 (17-may-2010)
Inode size:256
[[Email Protected]_server ~]#

DUMPE2FS is not joined to path by default and needs to be added manually
[Email protected]_server ~]# export PATH=/SBIN/DUMPE2FS: $PATH
[Email protected]_server ~]# Echo $PATH
/sbin/dumpe2fs:/home/script:/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/bin:/usr/sbin:/usr/bin:/home:/ Root/bin
[[Email Protected]_server ~]#

Since each file must have an inode, it is possible that the inode has been exhausted, but the hard disk is not yet full. At this point, you cannot create a new file on the hard disk, and the instance scenario above occurs.

Iv. inode Number

Each inode has a number that uses the Inode number to identify the file without using the file name within the Unix/linux system. For the system, the file name is just an alias or nickname for the inode number to easily identify. On the surface, the user opens the file by file name. In fact, this process inside the system is divided into three steps: First, the system finds the inode number corresponding to the file name, and secondly, obtains the inode information through the inode number, and finally, according to the Inode information, finds the block of the file data and reads the data.

With the Ls-i command, you can see the inode number corresponding to the file name:
[Email protected]_server zabbix]# ls-i indoe.txt
130698 Indoe.txt
[[Email Protected]_server zabbix]#

Understanding of the Inode of Linux

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.