磁盘分区
硬盘分区包括主分区、扩展分区、逻辑分区三种类型,之所以会有这样的区分,是因为在硬盘的主引导扇区中用来存放分区信息的空间只有64个字节(主引导扇区一共只有512字节空间),而每一个分区的信息都要占用16字节空间,因而理论上一块磁盘最多只能拥有4个分区,这4个分区都是主分区。扩展分区也是主分区,但是在扩展分区中可以再创建新的分区,这些分区就被称为逻辑分区,逻辑分区的数量就不再受主引导扇区空间大小的限制了,像IDE磁盘最多可以创建60个逻辑分区。
在Windows系统中,我们一般都是只创建一个主分区(也就是C盘),再将剩余的磁盘空间全部划给扩展分区,最后在扩展分区中创建逻辑分区
在Linux系统中所有的磁盘以及磁盘中的每个分区都是用文件的形式来表示的,所有的设备文件都统一存放在/dev目录中.
Linux中不同类型的硬盘和分区文件名不同
IDE硬盘和分区文件名:
系统中文件名形式为hdxy,其中hd表示硬盘为IDE类型,x表示硬盘序号,y为分区号,如第二块IDE硬盘的第二个分区系统中文件名为hdb2
SATA或者SCSI硬盘和分区文件名:
系统中文件名形式为sdxy,其中sd表示硬盘为SATA或者SCSI类型,x表示硬盘序号,y表示分区号,如第三块SATA硬盘的第三个分区系统中文件名为sdc3
Tips:所有使用USB接口的移动存储设备,不论是移动硬盘、优盘,还是USB光驱,都一律使用/dev/sdxx的设备文件。光驱(光盘)的设备文件一般默认为/dev/cdrom,这个就与光驱的接口无关了。由于主分区的数目最多只有四个,因此主分区和扩展分区的序号也就限制在1~4之间,而逻辑分区的序号将始终从5开始。即便第1个硬盘中只划分了一个主分区、一个扩展分区,则新建的第1个逻辑分区的序号仍然是从5开始,应表示为“sda5或者hda5”,第2个逻辑分区表示为“sda6或者hda6”。如图中的/dev/sda4为扩展分区,/dev/sda5为扩展分区中划分的逻辑分区
[root@justin dev]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000cdd82 Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 1332 10485760 83 Linux /dev/sda3 1332 1593 2097152 82 Linux swap / Solaris /dev/sda4 1593 2611 8182784 5 Extended /dev/sda5 1593 2611 8181760 83 Linux [root@justin dev]#
在安装linux分区的时候有个LVM和RAID分区类型,如果选择默认分区的话会创建LVM的分区类型,自定义分区需要创建根分区(/)、/boot分区和swap分区。
LVM逻辑盘卷管理(Logical Volume Manager):
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统,提高磁盘分区管理的灵活性。通过LVM系统管理员可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。
LVM是将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
RAID廉价冗余磁盘阵列(Redundant Arrays of Independent Disks):
磁盘阵列分为软阵列 (Software Raid)和硬阵列 (Hardware Raid) 两种.
软阵列:通过软件程序并由计算机的 CPU提供运行能力. 由于软件程式不是一个完整系统所以只能提供最基本的 RAID容错功能. 其他如热备用硬盘的设置, 远程管理等功能均无法实现.
硬阵列:由独立操作的硬件提供整个磁盘阵列的控制和计算功能. 不依靠系统的CPU资源. 由于硬阵列是一个完整的系统, 所有需要的功能都可以做进去. 所以硬阵列所提供的功能和性能均比软阵列好. 而且, 如果你想把系统也做到磁盘阵列中, 硬阵列是唯一的选择. 市场上 RAID 5 级的磁盘阵列都为硬阵列. 软 阵列只适用于 Raid 0 和 Raid 1.
RAID 0:将多个较小的磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个 磁盘并列起来,成为一个大硬盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能, 所以,在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能的,如果一个磁盘(物理)损坏,则所有的数 据都无法使用。
RAID 1:两组相同的磁盘系统互作镜像,速度没有提高,但是允许单个磁盘出错,可靠性最高。RAID 1就是镜像。其原理为 在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因 为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%, 是所有RAID上磁盘利用率最低的一个级别。
RAID 5:是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。硬盘的利用率为n-1。
RAID 6:与RAID 5相比,增加了第二个独立的奇偶校验信息块。 两个独立的奇偶系统使用不同的算法, 数据的可靠性非常高. 即使两块磁盘同时失效,也不会影响数据的使用。 但需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”。RAID 6 的写性能非常差, 较差的性能和复杂的实施使得RAID 6很少使用。
RAID 0+1:同时具有RAID 0和RAID 1的优点。RAID0+1也通过数据的100%备份提供数据安全保障,因此RAID 0+1的磁盘空间利用率与RAID 1相同,存储成本高。RAID 0+1的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。也称为RAID 10
冗 余:采用多个设备同时工作,当其中一个设备失效时,其它设备能够接替失效设备继续工作的体系。在PC服务器上,通 常在磁盘子系统、电源子系统采用冗余技术。
文件系统
文件系统类型决定了向分区中存放、读取文件数据的方式和效率,在对分区进行格式化时需要选择所使用的文件系统类型。在Windows系统中,硬盘分区通常都是采用FAT32或NTFS文件系统,而在Linux系统中,硬盘分区则大都是采用EXT3、EXT4等文件系统。最新的RHEL6.4就是EXT4文件系统
EXT4为第4代扩展文件系统,是RHEL6中默认使用的文件系统类型,属于典型的日志型文件系统。其特点是保持有磁盘存取记录的日志数据,便于恢复,性能和稳定性更加出色。
除了EXT4文件系统之外,Linux中还有一个比较特殊的SWAP类型的文件系统,swap文件系统是专门给交换分区使用的。交换分区类似于Windows系统中的虚拟内存,能够在一定程度上缓解物理内存不足的问题。不同的是,在Windows系统中是采用一个名为pagefile.sys的系统文件作为虚拟内存使用,而在Linux系统中则是划分了一个单独的分区作为虚拟内存,这个分区就被称为交换分区。交换分区的大小通常设置为主机物理内存的2倍,如主机的物理内存大小为1GB,则交换分区大小设置为2GB即可。
目录结构
Windows系统:
每个分区一个盘符,每个分区使用独立的文件系统,在每一个盘符中都会有一个根目录。定位文件或目录位置时使用“\”进行分隔
Linux系统:
整个系统中只存在一个根目录,所有的分区、目录、文件都在同一个根目录下面。定位文件或目录位置时使用“/”进行分隔,根目录是Linux文件系统的起点,一个硬盘分区只有挂载到某个目录中才能被访问,这个指定的目录就被称为挂载点。如将分区“/dev/hda2”挂载到根目录“/”,那么通过访问根目录“/”就可以访问到“/dev/hda2”分区,这个分区也就称为根分区
Linux下还有个重要目录/proc目录,它是一个虚拟的文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。提供了进程信息、内存资源、硬件设备、内核内存等信息。
/opt 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all。
/tmp这个目录是用来存放一些临时文件的。
/usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/var这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。