磁盘分区、格式化及LVM管理java
http://hongge.blog.51cto.com/windows
RHEL7如何对磁盘进行分区和格式化以及如何配置LVM,与之前版本的RHEL区别不大,能够经过disk工具(在图形桌面中运行)或命令工具(如:fdisk、gdisk、parted)管理硬盘设备。fdisk能够配置MBR格式; gdisk配置gpt格式, parted能够本身选择。后端
传统的硬盘分区都是MBR格式,MBR分区位于0扇区,他一共512字节,前446字节是grub引导程序,这个会在后面学习;中间64字节是分区表,每一个分区须要16个字节表示,所以主分区和扩展分区一共只能有4个分区,超过4个的分区只能从扩展分区上再设置逻辑分区来表示。每一个分区的大小没法超过2T。 MBR的最后2个字节是结束符号centos
GPT格式,打破了MBR的限制,能够设置多达128个分区,分区的大小根据操做系统的不一样有所变化,可是都突破了2T空间的限制。支持高达 18EB (1EB=1024PB,1PB=1024TB) 的卷大小,容许将主磁盘分区表和备份磁盘分区表用于冗余,还支持惟一的磁盘和分区 ID (GUID)。ide
与 MBR 分区的磁盘不一样,GPT的分区信息是在分区中,而不象MBR同样在主引导扇区。为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区创建了一个保护分区 (Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可以让MBR类磁盘管理软件把GPT当作一个未知格式的分区,而不是错误地当成一个未分区的磁盘svg
在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用做MBR,以后才是GPT头。工具
GPT的结构以下图:学习
首先看看当前的硬盘信息测试
能够在/proc/partitions这个文件查看当前的分区ui
先试试MBR格式的分区,fdisk选项以下所示
输入n,能够建立新的MBR分区,而后输入p能够显示当前的分区状态
重复n的操做,添加其余分区。
注:MBR格式磁盘最多能够建立4个主分区或3个主分区1个扩展分区,在扩展分区中能够建立若干个逻辑分区。
注意id表明了磁盘的用途,能够经过t来改变
看看分区记录
gdisk和fdisk很是相似
建立新分区的时候能够看见能够有128个分区
parted,和前两个相比,更灵活,能够自行设定MBR或GPT格式和分区
经过mklabel msdos能够设定为MBR格式,而后能够经过mkpart来划分分区
msdos设定为MBR格式,gpt设定为GPT格式
primary表明主分区,extended表明扩展分区,logical表明逻辑分区。
set number flag state用于设置分区的用途,flag:boot、lvm、raid。State:on/off表示开启或关闭。
parted工具分完区后无需保存,输入q退出便可。
划分好分区以后,还须要格式化才能使用。能够经过 mkfs/mkswap来格式化文件系统
#mkfs.xfs /dev/分区设备名或#mkfs -t xfs /dev/分区设备名
能够修改fstab实现自动加载
测试是否能自动挂载
经过df -h查看已经挂载了的设备
-T选项能够显示设备的文件系统类
有的挂载点路径比较长,自动分2行显示,能够-P强制一行显示
如同进程有pid,用户有uid,每一个文件系统也有本身的id,称为uuid,可是不是每一个分区都有;若是某个分区没有文件系统,那么这个分区是没有uuid的。
能够经过 blkid(block id)来查看。注意uuid标记的是文件系统,而不是分区。uuid的好处在于能够经过uuid这个惟一值来挂载系统,这样能够避免由于删除硬盘形成的错位,sda6变成了sda5等等
咱们能够经过xfs_admin -U 来手动更改文件系统的uuid
附:在目录里面能够经过 ls -ld查看目录的属性,ls -la查看内容的属性,可是-ld显示的目录大小只有4K,这仅仅是目录自己的大小,要想查看目录和其内容的整个大小,能够经过du来查看,若是只想看最终结果,使用-s(summary)就好了
下面咱们来看看swap分区如何手动建立。swap相似windows的虚拟内存/page file,当内存不足的时候,数据保存在swap中。
有两种方式可使用:
第一种单独用一个分区来做为swap
建立一个分区(如:/dev/sdb3),并更改分区ID为82
执行partx –a /dev/sdb命令,使分区修改生效
在分区上建立swap文件系统
修改fstab实现自动加载
第二种方式是建立一个文件块,这个文件所占有的空间做为swap使用
对于普通的分区,扩展度不高,一旦分区格式化完成,很难灵活的再增长或者减小分区大小。为了解决这个问题,可使用LVM(逻辑卷)。基本过程是把物理磁盘或者分区初始化称为物理卷(PV),而后把PV加入VG(卷组),最后在VG上划分逻辑的分区(LVM),LVM能够当作普通的分区进行格式化和挂载。
将准备的磁盘或分区建立PV
能够执行pvdisplay查看PV的详细信息,pvremove删除PV
建立完PV,以后,须要建立VG,而后添加PV到VG中
能够经过vgdisplay查看具体的信息,注意PE的Size是4M,这个是增减的最小计算单位
注:建立VG时:使用–s选项的做用是在建立时指定PE块(物理扩展单元)的大小,默认是4M。
如:# vgcreate volGroup03 -s 8M /dev/sdb[12])
咱们能够继续往vg里面添加新的分区
若事先没有把sdb3转化为pv,而是直接添加到vg里面,不过一旦添加了他自动就初始化成pv了。
能够添加固然也能够减小pv。 #vgreduce vg00 /dev/sdb3
VG准备就绪,能够建立了LVM了
注意看他的大小实际上是112M,由于PE的大小是4M,这个4M是最小单位,不能破开,所以28个PE就是112M
注:大L能够直接指定大小,小l是指定多少个PE的值
也能够设置剩余空间的百分比
删除逻辑卷 #lvremove /dev/vg00/lv01
对已经建立的逻辑卷,能够当作普通分区同样格式化和挂载
修改/etc/fstab文件实现开机自动挂载。
扩展一个逻辑卷,增长300M,首先要确保卷组有大于300M的空闲空间。
执行lvextend扩展逻辑卷大小
注意逻辑卷的文件系统仍然是109M没有改变,咱们还须要填充文件系统的空白。
RHEL7能够用xfs_growfs来扩大XFS文件系统,也能够直接用resize2fs 来处理设备
注意的是 XFS系统只能增加,不能减小!所以若是须要减小LVM的话,分区只能使用ext4了
执行df查看扩展后的文件系统
逻辑卷快照
LVM提供一个极妙的设备,它是snaphot。容许管理员建立一个新的块装置,在某个时间点提供了一个精确的逻辑卷副本,快照提供原始卷的静态视图LVM 快照经过把文件系统的改变记录到一个快照分区,所以当你建立一个快照分区时,你不须要使用和你正建立快照的分区同样大小的分区,所需的空间大小取决于快照的使用,因此没有可循的方法来设置此大小。若是快照的大小等于原始卷的大小那么快照永远可用。
快照是特殊的逻辑卷,只能够对逻辑卷作快照。逻辑卷快照和须要作快照的逻辑卷必须在同一个卷组里面
如今在咱们的系统中有个逻辑卷/dev/vg00/lv00,咱们用lvdisplay来查询一下这个逻辑卷
能够看到,这个逻辑卷/dev/vg00/lv00的大小是309M。咱们将这个逻辑卷/dev/vg00/lv00挂载到/data下面。复制一些数据到/data里面去。方便等下作试验
如今咱们就为逻辑卷/dev/vg00/lv00来作快照
执行lvscan查看建立好的逻辑卷
能够看到/dev/vg00/lv00是原始逻辑卷,而/dev/vg00/lvsp00是快照
执行lvdisplay或lvs命令查看逻辑信息
能够看到逻辑卷快照建立成功了,
注意:这个快照卷建好以后,是不须要格式化也不须要进行挂载的。格式化或挂载都会出现的错误提示的。
模拟将原逻辑卷中的数据删除
如何恢复原逻辑卷的数据?有两方式能够恢复删除的数据
方式一是先将原逻辑卷卸除挂载#umount /dev/vg00/lv00
而后挂载逻辑卷快照便可 #mount /dev/vg00/lvsp00 /data,就能够正常访问数据了
方式二能够经过 lvconvert把快照的内容从新写回原有的lvm
先将原逻辑卷卸除挂载#umount /dev/vg00/lv00
执行lvconvert将快照的数据合并到原逻辑卷 #lvconvert --merge /dev/vg00/lvsp00
最后挂载原逻辑卷,查看数据是否恢复成功
注:当咱们把原逻辑卷里面的数据给删除了,逻辑卷快照里面的数据还在,因此能够用快照恢复数据。而当咱们在逻辑卷里面添加数据,快照是不会发生改变的,是没有这个文件的。由于快照只会备份当时逻辑卷的一瞬间。
使用ssm(系统存储管理器)进行逻辑管理
逻辑卷管理器(LVM)是一种极其灵活的磁盘管理工具,它让用户能够从多个物理硬驱建立逻辑磁盘卷,并调整大小,根本没有停机时间。最新版本的CentOS/RHEL 7如今随带系统存储管理器(又叫ssm),这是一种统一的命令行界面,由红帽公司开发,用于管理各类各样的存储设备。目前,有三种可供ssm使用的卷管理后端:LVM、Btrfs和Crypt
准备ssm,在CentOS/RHEL 7上,你须要首先安装系统存储管理器。能够经过rpm或yum工具安装
首先咱们来检查关于可用硬盘和LVM卷的信息。下面这个命令将显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。
#ssm list
在这个例子中,有两个物理设备(“/dev/sda”和“/dev/sdb”)、二个存储池(“rhel和vg00”),以及存储池rhel中建立的两个LVM卷(“dev/rhel/root”和“/dev/rhel/swap”),存储池vg00中建立的一个LVM卷(/dev/vg00/lv00)。
下面来说解如何经过ssm建立、管理逻辑卷和逻辑卷快照
至少新添加一块磁盘,执行ssm命令显示现有磁盘存储设备、存储池、LVM卷的信息
能够看到有两块空闲磁盘(sdc、sdd)
建立新的LVM池/卷
在这个示例中,不妨看一下如何在物理磁盘驱动器上建立新的存储池和新的LVM卷。若是使用传统的LVM工具,整个过程至关复杂,须要准备分区,须要建立物理卷、卷组、逻辑卷,最后还要创建文件系统。不过,若使用ssm,整个过程一蹴而就!
下面这个命令的做用是,建立一个名为mypool的存储池,建立存储池中名为lv01的500MB大小的LVM卷,使用XFS文件系统格式化卷,并将它挂载到/mnt/test下。
验证ssm建立的结果
或执行ssm list
将物理磁盘(sdd)添加到LVM池
新设备添加到存储池后,存储池会自动扩大,扩大多少取决于设备的大小。检查名为centos的存储池的大小执行ssm list查看
接下来,咱们来扩大现有的LVM卷
扩大LVM卷,不妨将/dev/mypool/lv01卷的大小增长300MB。
若是你在存储池中有额外空间,能够扩大存储池中现有的磁盘卷。为此,使用ssm命令的resize选项
执行ssm list查看扩大后逻辑卷
能够看到逻辑卷扩大到800M,即在原来的基础上增长了300M,但文件系统大小(Fs size)尚未改变,仍然是原来的大小。
为了让文件系统识别增长后的卷大小,你须要“扩大”现有的文件系统自己。有不一样的工具可用来扩大现有的文件系统,这取决于你使用哪一种文件系统。好比说,有面向EXT2/EXT3/EXT4的resize2fs、面向XFS的xfs_growfs以及面向Btrfs的btrfs,不一而足。
在这个例子中,咱们使用CentOS 7,XFS文件系统在默认状况下建立。于是,咱们使用xfs_growfs来扩大现有的XFS文件系统。
扩大XFS文件系统后,查看结果
或执行#df -hT
能够看到LVM扩展成功
逻辑卷快照
对现有的LVM卷(好比/dev/mypool/lv01)生成快照
一旦快照生成完毕,它将做为一个特殊的快照卷存储起来,存储了原始卷中生成快照时的全部数据
每次原LVM中的数据更改,均可以手动执行ssm snapshot生成快照
当原LVM数据损坏就能够用快照恢复了
方式一是先将原逻辑卷卸除挂载 #umount /dev/vg00/lv00
而后挂载逻辑卷快照便可 #mount /dev/vg00/lvsp00 /data,就能够正常访问数据了
方式二能够经过 lvconvert把快照的内容从新写回原有的lvm
先将原逻辑卷卸除挂载#umount /dev/vg00/lv00
执行lvconvert将快照的数据合并到原逻辑卷 #lvconvert --merge /dev/vg00/lvsp00
最后挂载原逻辑卷,查看数据是否恢复成功
有磁ssm的具体用法能够参考ssm的帮助手删页
如:删除LVM卷#ssm remove <volume>
删除存储池#ssm remove <pool-name>