File System Check (FSCK)
File System Check (FSCK) is a procedure of checking file system consistency. In most cases we run FSCK after an improper shut-down/reboot of the server. This system tool scans file systems for critical errors and fixes them.
Why does it take so long?
First of all, due to the size of the HDD on the server, the number of disk partitions and the amount of file system errors. In order to provide better fail safety and optimize the maintenance, the disk is always partitioned so that the most essential partitions could be mounted/unmounted separately. Also, as our servers are cPanel based, and this control panel has its own peculiarities of data processing and disk usage, we separate partitions in the following way:
/
/boot
/var
/usr
/tmp
/home
/home is the one to take most time for the check, as it's the biggest and the most crucial one (users' folders with all their content are located there).
Another reason is that FSCK can hardly be run in the background. The partition needs to be unmounted, so that the errors could be fixed properly. That is why we run FSCK before any services are started.
Why don't you always provide clear updates on the FSCK status?
Unlike the rebuild process, FSCK does not provide percentage of the progress, so the only thing we can report on, is the current partition under the check and the phase of the FSCK. Furthermore, FSCK is a non-linear process, i.e. it may take different time for the check depending on the number of errors on certain partition.
FSCK Phases are:
Phase 1: Check Blocks and Sizes
Phase 2: Check Path-Names
Phase 3: Check Connectivity
Phase 4: Check Reference Counts
Phase 5: Check Cylinder Groups
Phase 6: Salvage Cylinder Groups
Why do you sometimes perform the manual FSCK?
Manual FSCK is usually performed when automatic FSCK fails due to the file system errors which were skipped or not fixed and then caused the failure.