4.8. Disk Managment.
In this section we are going to discuss every thing about block devices
such as hard disks and RAID system, what does file system mean,
types of formating and how to optimize them for best speed, reliability
or security.
Section quote:
- "I recall hearing that highly-classified data must be destroyed by
physically shredding the medium. Yes, throw your disk drive in the
shredder!"
-- Mark Wood on Linux Kernel Mailing Lists
Section contents:
4.8.1. File systems introduction.
Linux can handle many file systems, because it depends on a general abstraction
called Virtual File System (VFS) which can be easy support new file systems
for example using loadable modules, if you need to use some file system
load it's modem (with modprobe), Linux support pseudo file systems
like 'proc'. Linux 2.2 had a limit for maximum file system size upto 2 TB (2048 GB),
in recent versions too much larger sizes are supported.
Tip
If you define a '_FILE_OFFSET_BITS=64' macro, then 'gcc'
will transparently replacy usual standard C file functions with LFS
functions which that can handle files larger than 2GB (and file systems
larger than 2TB), for example 'gcc -d _FILE_OFFSET_BITS=64 myfile.c -o myfile'.
you could mount (map) new disks some where then link it some where else,
if you are developing a project with low disk space, then you plug a new disk
you could mount it to any subdirectory of the project. At any time you could
add virtual memory (swap space) at any time, for example if you install
a new program that needs more memory (ie. swap) and you have a free partition
(or pluged a new hard disk) you could convert it to swap partition
then mount it (just the same as installation program) with
bash# mkswap /dev/hdb7
bash# swapon /dev/hdb7
this is not useful, Linux allow to do that without having new partitions
and without playing with current partition table, create swap file! with
bash# mkswap if=/dev/zero of=/swapfile bs=1m count=32
bash# mkswap /swapfile
bash# swapon /swapfile
before you remove this file you should unmount it with:
disks and partitions are block devices, notice the 'b' to left of file mode,
for example see the output of 'ls -l /dev/hda'. This mean
that the data are divided into fixed size structure called block or cluster
(for example, each is 512 byte in size), unlike character devices
which reads one byte at a time as in keyboards and terminals.
With block devices you could block number so and so without passing
previous blocks, you could read blocks in reversed order.
This mean that disks is like numbered pigeonholes (or P.O.Boxes),
get what's on box number so and so ... put this at box numbered so and so,
people don't like numbers (it's difficult to remember) and usually
files do not have the smae size as blocks, this is why file system for,
it's a logical process to locate those numbers as assigned to some file,
some boxes(blockes) are used as index we keep information about file (it's name,date,size,first block number)
at the block related with the content of this file we keep part of file content
and next block number (and the rest part of the file and so on),
the structure of blockes,index,filenames,...etc is called file system,
and the process of applying a file system on device called formating.
Tip
If you added one byte to a file, the free space could stay the same,
and could decrease by more than one byte, if you create a new one byte file
tthe hard disk free space decreases by one block size.
There are sets of tools to deal with each file system, for example
mkfs.msdos, mkfs.minix, ..., fsck.minix ...etc.
the first part is tthe task of the tool and second part is the file system it could handle.
The new Linux native file system is 'ext3'
(a journaling version that is backward and upward compatible with 'ext2'),
also you could use 'reiserfs','jfs' (IBM journaling file system) and 'xfs'
(released by SGI under terms of GPL), using the last one you could put 32
million file on one folder, and it support large files upto many TB,
see 'http://oss.sgi.com/projects/xfs',
the file system suitable for floppies (rescue disks) is 'minix',
and the suitable for initial ram disks is the native old 'ext2'
because it needs no modules and ram disk needs no journaling
(this will save some space), also if 'minix' support is built
into the kernel then it could be used for initial ram disk.
Since 'ext3' is compatible with 'ext2' that last one tools could used
with the first (should I say the third). We have a file system called 'msdos'
that is FAT used in dos and windows but the 8.3 filenaming style (12 characters, no spaces, 8 characters followed by '.' then 3 charactters),
an extention to it is called 'vfat' which supports long filenames and spaces,
although this improvements to FAT, it's not a journaling file system,
it have no links, no device files, no modes (permissions), FIFO. For all those reasons
you can't install Linux on 'msdos' or 'vfat' file systems, but there is a file system
called 'umdos' that fill the missing features of FAT, it could be used to install
Linux on FAT. We will concentrate on 'ext3' (or 2), it won't be difficult to find
your way with other file systems.
4.8.2. Low level format.
Like infrastructure of a city, the disk making factories give each disk another kind
of format, where it specify and prepare sectors number and size (they are not
sector shaped, only arces with fixed angles is called sectors in this context)
and tracks (circles with valid raduis for sectors), in other words low level
format is to specify where each byte is located and prepare it. This process
is done by tthe factory as we said before, but you can do it again yourself for
a floppy (as far as I know there is no such tool for hard disk) using something
like this:
bash# fdformat /dev/fd0u1440
you could format the same disk to be able to have more (or less) capacity
(by preparing more tracks and sectors) for example:
bash# fdformat /dev/fd0u1760
normal high density floppy size could be 1440,1600,1680,1722,1743,1760,1840 and 1920 KB,
the first three and last two could be autodetected when you mount it with
'/dev/fd0', others you should specify the exact device
like '/dev/fd0u1722', also note not all drivers could handle those
extra tracks.
After low level format you put the file system using usual higher level format.
Linux is so advanced, it does not depend on BIOS to handle disks,
for example is you did not declare(nor use autodetect) the hard disk on BIOS setup,
and set it to 'none', Linux could access it, Windows or LILO/GRUB will not work
if BIOS settings of hard disk is invalid. BIOS hard disk settings is to specify
the number of cylinders, heads and sectors, this is called CHS (also sometimes
you need to specify tracks), those values are written on the back of the disk,
some BIOSs offer autodetect once (it's faster than autodetect on each POST each time you turn on your computer),
and Linux could detect them:
bash# dmesg | grep 'hd[a-d]:.*CHS'
any way those values could be fake (if you have a disk with 30 heads, this
does not mean that there are a 30 R/W heads on it). Those values could
be logical address to overcome limitation of the old BIOS design (all BIOSs including the new ones have this limit)
so a system called Logical Block Addressing (LBA), if you have a large hard disk
make sure this flag is on at BIOS,at patition table for FAT partitions
and at LILO.
4.8.3. Partitioning.
We have said at installing section that we have 3 advantages for partitioning those are:
- you can handle(check,format,...etc) each partition alone, this will save time
for example if you have an 80 GB, having a problem on a 20 GB partition you only
check those alone.
- overcoming file system limitation on some it's size, for example largest
FAT16 disk size is 2GB and for FAT32 is 2TB, separating the disk into partations
each could be upto the limit.
- each partition could have different file system and it could have it's
own boot record, so you could install many OSs.
another infamous advantage is to reduce lost size with large disks
because when you allocate small part of disk space to a file, integer number
of blocks is allocated and the whole block size of each is occupied,
the difference is happened at last block, the difference between the block
size and the used size of the block is lost. The larger file system
the larger block size, or the larger number of small files, the larger wasted space.
Partitioning also could make accessing to files faster, there are
smaller number of files to search.
Some partitioning programs are easy and others are complicated,
easy GUI partitioning tools like 'diskdrake' (Mandrake), 'diskdruid' (RedHat),
and 'cfdisk' which is an easy console program, to use it move with up and down
arrows to select a partition, left and right to select operation.
On the other hand we have 'fdisk' the most ugly difficult utility,
after you run it you could type a command letter at it's prompt:
bash# fdisk -l /dev/hda
display a report
bash# fdisk /dev/hda
Command (m for help): m
Command action
a toggle a bootable flag
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
type 'm' to get help, it will give you other commands, first you could
use 'p' to print the current partition table, 'd' to delete a partition,
'n' to add new one, 't' to set it's type,'w' to save, 'q' to quit.
Let's assume that 'p' tells you that you have a 'hda1', 'hda2', 'hda5' and
'hda6', the file system type mark on the partition table is just hint
for Windows to tell it what partitions it could use
(changing this mark will not format or change the format of the filesystem),
if you did a snaky trick by giving an 'ext2' partition a FAT flag,
Linux cuold mount it usally, but if you give a FAT partition non FAT flag
it will not be visible at 'My computer', most important filesystem
type numbers are:
0C FAT32 (LBA)
1C Hidden FAT32 (LBA)
82 Linux Swap
83 Linux Native (ext2/ext3 or what ever)
'Hidden FAT' is useful if have two disk ( C and D ) then hide the first,
the other will be visible to Windows as C, this trick could be
used by LILO/GRUB to boot a Windows that is not installed on first FAT.
Tip
If you have Windows or DOS then the partitioning philosophy is like this:
the first one 'hda1' is primary partition with bootable flag, then upto
two other primary partitions (without bootable flag), then an extended
partition that take the rest of the disk space, if we have only one primary
partition then the extended will be 'hda2', this partition is not usable
(you can't mount it), then logical partition comes on this extended partition,
in other words partitions from 1 to 4 are primary or extended, the rest are logical,
you could have 4 primary partitions but you can't add more than that,
but if you have 3 primary you could add extended and many logical partitions inside it,
only one primary could be bootable (need not the first).
we will discuss an example (you could apply the example, but do NOT write new
partition table to the hard disk, data will be lost),
let's remove 'hda6', type 'd' then press [ENTER] then type
'6' and press [ENTER], see the table with 'p', to add a 128MB swap partition
replacing the deleted partition, press 'n [ENTER] l [ENTER] '
to add owr new logical partition, now accept the suggested starting point for
this partition by pressing [ENTER], set the end point or use '+' to specify
the size, in our example type '+128M',
now we have to set it's type to Linux swap, type 't [ENTER] 6 [ENTER]',
will ask you for type number (in hexadecimal) type 82, you don't have to recall
it list them with 'l' ([ENTER] for next page), let's assume the deleted partition
is larger than 128MB, let's say 2GB, now we have some unallocated space,
we can create another partition, and let it be a Linux native partition to be 'hda7',
press 'n [ENTER] l [ENTER] ', acceptt tthe start point with [ENTER] and the end point
with another [ENTER], type 't [ENTER] 7 [ENTER] 83',
if you feel that we did something wrong quit without saving,
if every thing is okay and you are sure about the new table type
'v' [ENTER] to verify, 'w' to write (save changes) and 'q' to quit.
Warning
You should not modify the partition table of any mounted device,
for example to change the partition of your root file system use rescue disk
or a Live CD.
after you change partition table you have to reformat affected partitions.
resizing a partition with 'fdisk' by removing it and adding a new one with
different size, will case data loss, on the other hand 'GNU parted'
is the answer! it could edit (create,remove,..etc) partition table
and it can resize partition without losing data (this applies to FAT and 'ext2'),
'parted' could be used silently as a back end by scripts or GUI programs
using '-s' option, for example 'parted -s /dev/hda resize 1 0 1023'
will resize the first partition of 'hda' to start from zero and end at 1023 (in MB),
but using '-i' option run on interactive mode (the default mode),
for example type 'parted -i /dev/hdb' to start partitioning 'hdb'.
Warning
'parted' apply changes as you type them, unlike 'fdisk' you can NOT play with it
then exit without saving.
you will see '(parted)' prompt, this is a sample session:
bash# parted /dev/hdb
GNU parted X.YY.ZZ
WARNING ....
(parted) print
Minor Start End Type Filesystem Flags
1 0.0 5010.7 primary FAT boot
(parted) help
...
(parted) help check
...
(parted) check 1
(parted) resize 1 0 1023
(parted) print
Minor Start End Type Filesystem Flags
1 0.0 1023 primary FAT boot
(parted) mkpart primary ext2 1023 5010.7
(parted) print
Minor Start End Type Filesystem Flags
1 0.0 1023 primary FAT boot
2 1023 5010.7 primary ext2
unlike 'fdisk' partition types are not numbers they are:
'primary', 'logical' and 'extended',
and most important file systems are 'FAT', 'ext2', 'linux-swap' and there are more.
type the command 'print' to display the table, the first column minor
represent partition number (the number next to the device name, for example '5' is for 'hda5'),
the command mkpart will allocate a new partition without formating
on the form 'mkpart TYPE FS START END',
later you could use 'mkfs' command (at 'parted prompt')
using this syntax 'mkfs MINOR FSTYPE', or do both
allocating partition and format it with some file system using
'mkpartfs' which is used the same syntax as 'mkpart'.
File system names are
ext2 ext3 FAT hfs jfs linux-swap ntfs reiserfs hp-ufs sun-ufs xfs
to remove a partition use 'rm MINOR', it's sometime useful to
copy a file system from partition to another with 'cp MINOR1 MINOR2'
before you remove it, if you have a new disk with no partition table and
you have to create one from scratch use the command 'mklabel TYPE'
where type is TYPE is one of 'msdos', 'GPT'
or 'loop' (usually use the first one 'msdos'),
do NOT confuse it with 'name MINOR NAME' which gives a partition
a name (called label in Windows terminology). The best feature of 'parted'
is to change the size of any partition without losing data 'resize MINOR START END',
you could move a partition(keeping it's size) move MINOR START.
To work on other device (or specify device if you did not pass it as argument)
use 'select DEVICE' where DEVICE could be
'/dev/hda' for example.
Warning
Before you resize a partition you should check it with
'dosfsck' or 'e2fsck' for 'FAT'
and 'ext2' respectively, then check it inside 'parted'
with 'check' folloed by partition number, also you should convert
'ext3' to 'ext2'.
Tip
If you have large disk (larger than 2GB), then you should enable 'LBA'
flag on 'BIOS' (if there is no such option then it's on by default),
and on partition table for each FAT partitions (so that Windows and DOS works properly),
you could use 'parted' to set this flag on with something like
'set 1 lba on' this will turn LBA for first partition.
another tool to resize 'ext2' partition is 'resize2sf'
the same warning applies here.
4.8.4. Formating.
If you have a floppy you want to format (this will erase all data) type:
bash# mkdosfs -v /dev/fd0u1440
and you floppy is now empty in an instant
(just like 'quick format' on DOS/Window but much faster),
this command apply FAT file system on the floppy.
This process is fast because it put the header of an empty file system
and it marks each block as 'not used', it won't bother filling blocks with 0's,
as the pigeonholes example, we mark all boxes as 'not used' even if they are not.
Warning
This mean that data could be restored after formating if they were not
overwritten (like shred paper with much glue), don't depend on that
you can restore the data but know that a cracker with time and filters
could find what he is looking for, if you have data and you want them to
disappear before you format that partition issue:
'dd if=/dev/zero of=/dev/hdb1 bs=1m'.
at our previous 'fdisk' example, we have allocated 'hda6' as swap and 'hda7' as
Linux native, then we have format them, 'hda6' with 'mkswapfs' and 'hda7'
with 'mke2fs' like this:
bash# mke2fs -v /dev/hda7
it will be formated very fast, you could use 'C' option to check and fix
physical defects (bad sectors), the last command will be:
bash# mke2fs -Cv /dev/hda7
this will take too long time. you could safely convert 'ext2' partition to 'ext3'
with 'tune2fs' without loss of data like this:
bash# tune2fs -j /dev/hda7
this tool could specify extra options, like consistency check
each 60 days or 30 mounts (which comes first), this tool could do the back
conversion from 'ext2' to 'ext3' with something like 'tune2fs -O ^has_jornal /dev/hda7'
this should be done before you resize this partition.
Warning
Before you do conversion from 'ext3' to 'ext2', you should unmount it
or at least mount it as read only, 'mount /dev/hda7 -o remount,ro'
and make sure it's successfully set a read only, notice 'ro'
on options field, then you could use 'tune2sf'.
you could set a label (called name on GNU parted terminology) for a partition
with '-L' option followed by a name, to the formating tool
or use 'e2label' tool.
4.8.5. Checking file system consistency.
To check a device we use 'fsck' which could autodetect file system type,
and then call the specific tool to check thatt file system.
You also could use the file system specific tool (like 'e2fsck' for 'ext2')
Warning
Before you check any thing you should unmount or at least remount as read only,
with something like 'mount /dev/hda7 -o remount,ro'
then make sure it's so with 'mount' with no arguments.
let's try checking 'hda7' with:
bash# e2fsck /dev/hda7
e2fsck: /dev/hda7 is clean
bash#
this does not mean that it's checked so fast, it noticed that this device
needs no checking because it's unmounted clearly and it never encounter any problem,
if you insisted on checking it add '-f' option to force checking,
then if it found any problem it will ask to whether to fix it or not
press 'y' to fix it or 'n' to ignore it (followed by [ENTER]),
once you face an error, then you will face many, "good" things comes together!
you could ask for automatic repair with '-a' option, this will answer 'yes'
to every non critical questions, and exit if there are some critical issue,
in other words if fixing could case loss of data then it asks you try it without
'a', if you want it to answer all questions with 'yes', critical and non critical
ones, use '-y' for example 'e2fsck -y /dev/hda7'.
We have said that 'fsck' could case loss of data (files) due to
file system inconsistency (eg. bacause of bad system shutdown),
those lost files than could not be identified will be saved on
'/lost+found', some of them could have no names
(names as it's nodes numbers), it's upto you move them to their places.
4.8.6. Security.
At a previous warning we have said that formated deviced could be restored
because it's not (...) as one could imagine, the same way deleted files
could be restored, I'm not saying so to encourage you to delete file when
you are NOT sure nor to give you hope it could be restored, but
to warn that when you remove sensitive file (like passwd) it could
be restored by someone. To see that you self run 'mc' and type
'cd /#undel:hda7' then you could see a folder with all deleted files
on 'hda7' (their names will be just numbers), press F3 to view it,
and restotre the file by coping it somewhere else.
Then how to erase files once and for all ? think of a solution ?
let's assume you have a 1MB file called 'mysecrit', then try:
bash# dd if=/dev/zero of=mysecrit bs=1k count=1024
1024+0 records in
1024+0 records out
bash# rm mysecrit
or more advanced:
bash# dd if=/dev/urandom of=mysecrit bs=1k count=1024
1024+0 records in
1024+0 records out
bash# sync
bash# rm mysecrit
we have editted the file to fill it with random values, then we wait until
it's physically written on the disk, then we remove it.
Tip
'sync' is a tool used to force the system to physically write all what in
buffer/cache, it's useful to be used once you feel there something
wrong going to happen (eg. just before a system crash) then
all scheduled writing requests will be physically written, so
next booting check few damage will be lost.
that reinventing the wheel method should not be used, use shreding tool
(the name come from sensitive paper files shreding) like:
this will remove the file (faster than our method) after
it makes sure that no cracker could restore it back,
just it fill it with random values many times but much faster and safer.
4.8.7. Raw disk images.
Do you have ISO files (CDROM raw images) ? you could access those
files without burning it on CD!! you could mount the images
using loop back device, to set a loop back device to point to the image
and mount it use:
bash# mount -o loop,ro /home/ahmad/cd_image.iso /mnt/cdrom
this is equivalent to the following two steps:
bash# losetup /dev/loop0 /home/ahmad/cd_image.iso
bash# mount -o ro /dev/loop0 /mnt/cdrom
notice 'loop' option with first mount. To free the loop back device ,
first unmount it with 'umount', but sometimes(when '/etc/mtab'
is a link) this is not enough use 'losetup -d /dev/loop0'
after unmount.
bash# umount /dev/loop0
bash# losetup -d /dev/loop0
you could set more than one loop back device, change the numbers after '/dev/loop',
you could know what loop devices are used try
'ps ax | grep 'loop'' or 'fuser',
to know if a loop is mounted or not use 'losetup /dev/loop0'
(change the number).
You could create a raw image of a disk that need not be an ISO,
by taking a sanpshot of a real device with 'dd', passing the device as
input file and the image file as output
bash# dd if=/dev/hdb1 of=/misc/hdb1.img.vfat bs=4K
or create an file then format it (as if it's a device)
then you mount it then put what ever files you want.
To create a 32MB image of 'ext2' file system:
bash# dd if=/dev/zero of=/misc/img.ext2 bs=1M count=32
32+0 records in
32+0 records out
bash# mke2fs -v /misc/img.ext2
mke2fs: /misc/img.ext2 is not block device, continue ? y
4.8.8. Compressed file systems.
You could convert any directory tree to a compressed disk image then
mount it as loop back device and use it, an example of this is 'cramfs'
after creating this file system you can only mount it for read only use,
it's amazing how fast it is! This is en example how to generate such file
and mount it,
bash# mkfs.cram -v /home/ali/mytree /misc/img.cram
bash# mount -o loop,ro -t cramfs /misc/img.cram /mnt/cramfs
now you could remove the tree.
This is useful to create Live CDs where you want to add as much packages as
possible on the read only CD media, most files are puted on a 'cramfs'
and leave few directories like 'etc', 'home', 'mnt', 'proc', 'tmp' and 'var'
on a RAM disk so it can be mountted for read and right, each directory
in the 'cramfs' is linked on tthe root tree.
4.8.9. Encrypted file systems.
Again, the answer is loop back device, using '-e' option
when you call 'losetup' followed by encryption method like
'twofish', 'blowfish', 'cast128', 'serpent' and 'aes', to see currently
loaded enryption modules view '/proc/crypto',
to add more encryption modules use 'insmod' or modprobe
followed by module base name (with no extention) than is found on
'/lib/module' then kernel version then...,
The Loopback-Encrypted-Filesystem-HOWTO suggests 'serpent' encryption
but more recent documentations suggest 'aes' which is an encryption method
approved by NIST, this is an example discuss how to create and mount
a 64MB encrypted loop back device using 'aes' method,
use: (the first command is to make sure loop0 is not used)
# losetup /dev/loop0
/dev/loop0 does not exists
# dd if=/dev/zero of=/misc/secrit bs=1M count=64
64+0 records in
64+0 records out
# losetup -e aes-256 /dev/loop0 /misc/secrit
password:*******
# mke2fs /dev/loop0
# losetup -d /dev/loop0
tthe file '/misc/secrit created is an encrypted 'ext2' file system,
(for more security replace 'zero' device with 'urandom', so that the the cracker
could not recognize empty blocks)
Tip
You could pass the pasword using a pipe '|'
or file with '<'.
at any time you could decrypt the file (map it to a loop device the loop
with be unencrtypted) then mount it, then you could deal usually with it's mount
point, for exmaple:
# losetup -e aes /dev/loop0 /misc/secrit
password:*******
# mount -t ext2 -o rw /dev/loop0 /mnt/secrit
unmount it, and remove the decrypted loop file and keep the encrypted file:
# umount /mnt/secrit
# losetup -d /dev/loop0
you could do that with an enitre partition, replace '/misc/secrit'
with '/dev/hdb1' (witthout specifying 'count' with 'dd' command),
you could mount it automatically by adding it to 'fstab'
and at options column add 'encryption=aes-256'.
To make it far more difficult you could set the password to be a big
random file saved on a flash USB memory, using something like:
# losetup -e aes /dev/loop0 /misc/secrit < /mnt/flash/mykey
see Loopback-Encrypted-Filesystem-HOWTO,
Cryptoloop Howto by Ralf Holzer and
Disk Encryption HOWTO by David Braun
a cracker could now that it's encrypted then he start to guess password.
A trick to fool crackers using an encrypted file system that has
some nenrypted pseudo files that the cracker thing there is no more files
(when he mount it with no password it mount usually but no sensitive files)
using Steganographic File System see http://stegfs.sf.net.
4.8.10. Logical Volume Management (LVM).
Logical Volume Management(LVM) is meant to group devices (partitions/disks)
appears tto be one disk, you could add a new disk and it will add free
space to LVM virtual disk, not to just the mount point of the newly added disk,
see LVM-HOWTO
by AJ Lewis <alewis(at)redhat(dot)com> Copyrighted by Sistina Software, Inc.
4.8.11. Redundant Array of Indepenant Disks (RAID).
Redundant Array of Indepenant Disks (RAID) that is a set of many cheap disks
as LVM appear to be one volume, but it saves extra redundant data,
there are two types of them hardware (larg case with many disk could be
attached using SCSI or USB) or software where a software like Linux kernel modules
and user space tools that set usual IDE or SCSI disks (or partitions) to be a RAID system.
You may ask how it differ from LVM ? and why on Earth would some one divide hid disk into partitions then
join them with RAID ? you will know that when we know RAID levels.
There are some classes of how RAID works called levels,
some of them are:
- level 0 (stripping), S=sum(si)
-
In this level the array volume is the summation of all disks volumes,
data will be distributed (stripped) equally on all disks,
for example a 10MB file on a RAID of 10 partitions/disks
each will have 1MB.
- level 1 (mirroring), S=s1=s2...=sn
-
The volume of this system equals the volume of only one disk of the set,
each disk will be a mirror image of the other, if one is off, busy
or facing some inconsistency problems, the whole RAID array will be
avaliable.
- level 5 (parity checking), S=sum(si)-s1
-
Like stripping (level 1) data we be distributed on all disks/partition equally
except one that is reserved for consistency assurance,
the array volume is the summatiton of all volumes except one.
|
Best viewed with free web browsers
You may get more high quality software
from here for free

Generously Hosted by www.JadMadi.net
|