设为首页 收藏本站
查看: 5636|回复: 0

[经验分享] centos7磁盘分区、格式化及LVM管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-5 16:28:41 | 显示全部楼层 |阅读模式
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个字节是结束符号
  GPT格式,打破了MBR的限制,可以设置多达128个分区,分区的大小根据操作系统的不同有所变化,但是都突破了2T空间的限制。支持高达 18EB (1EB=1024PB,1PB=1024TB) 的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。
  与 MBR 分区的磁盘不同,GPT的分区信息是在分区中,而不象MBR一样在主引导扇区。为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区 (Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘
  在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
  GPT的结构如下图:
   wKiom1fKFB6ACEpWAAElGGbmNAc830.jpg
  首先看看当前的硬盘信息
   wKiom1fKFCKDn91kAAB1HDdgEZo948.jpg
  可以在/proc/partitions这个文件查看当前的分区
   wKioL1fKFCOxvg0sAAArABxGYjM190.jpg
  先试试MBR格式的分区,fdisk选项如下所示
   wKiom1fKFCOidERrAABfCqiDTrc118.jpg
  输入n,可以创建新的MBR分区,然后输入p可以显示当前的分区状态
   wKiom1fKFCSwrbQvAABgkTszz9Q718.jpg
  重复n的操作,添加其他分区。
  注:MBR格式磁盘最多可以创建4个主分区或3个主分区1个扩展分区,在扩展分区中可以创建若干个逻辑分区。
  注意id代表了磁盘的用途,可以通过t来改变
   wKioL1fKFCWyGtm9AACBGK-kAuc654.jpg
  看看分区记录
   wKioL1fKFCay_nFgAAA35Wq0nmQ243.jpg
  gdisk和fdisk非常类似
   wKiom1fKFCbh_5BPAAAXGE7-1G4544.jpg
   wKioL1fKFCfQnJMNAABvM5tPCgs044.jpg
   wKioL1fKFCiRXmkXAABVkVJnTPw318.jpg
  创建新分区的时候可以看见可以有128个分区
  parted,和前两个相比,更灵活,可以自行设定MBR或GPT格式和分区
   wKiom1fKFCmhlNf-AABkUUcxEQs556.jpg
  通过mklabel msdos可以设定为MBR格式,然后可以通过mkpart来划分分区
   wKioL1fKFCrTbJvuAABYyjB_pOk284.jpg
  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/分区设备名
   wKiom1fKFCvTVryPAAAwbcOQM1g424.jpg
  可以修改fstab实现自动加载
   wKiom1fKFCvjhEspAAAthtn_Q8E737.jpg
  测试是否能自动挂载
   wKiom1fKFCywmlQSAAA8KT4e_y4114.jpg
  通过df -h查看已经挂载了的设备
  -T选项可以显示设备的文件系统类
  有的挂载点路径比较长,自动分2行显示,可以-P强制一行显示
  如同进程有pid,用户有uid,每个文件系统也有自己的id,称为uuid,但是不是每个分区都有;如果某个分区没有文件系统,那么这个分区是没有uuid的。
  可以通过 blkid(block id)来查看。注意uuid标记的是文件系统,而不是分区。uuid的好处在于可以通过uuid这个唯一值来挂载系统,这样可以避免因为删除硬盘造成的错位,sda6变成了sda5等等
   wKiom1fKFCzhgJ_6AAA1IhPFAf0569.jpg
  我们可以通过xfs_admin -U 来手动更改文件系统的uuid
   wKioL1fKFC3RA7rWAABXsKeqdio075.jpg
  附:在目录里面可以通过 ls -ld查看目录的属性,ls -la查看内容的属性,但是-ld显示的目录大小只有4K,这仅仅是目录本身的大小,要想查看目录和其内容的整个大小,可以通过du来查看,如果只想看最终结果,使用-s(summary)就行了
   wKiom1fKFC7QAQN0AAAnmevKANE369.jpg
  下面我们来看看swap分区如何手动创建。swap类似windows的虚拟内存/page file,当内存不足的时候,数据保存在swap中。
  有两种方式可以使用:
  第一种单独用一个分区来作为swap
   wKioL1fKFC7ybJyaAAAUwKbdbRU063.jpg
  创建一个分区(如:/dev/sdb3),并更改分区ID为82
  执行partx –a /dev/sdb命令,使分区修改生效
  在分区上创建swap文件系统
   wKioL1fKFC-i2dL6AAApFbIoo5o199.jpg
  修改fstab实现自动加载
   wKioL1fKFC_AHhgiAAARAJ41TH4679.jpg
  第二种方式是创建一个文件块,这个文件所占有的空间作为swap使用
   wKiom1fKFDChuxtxAABMiFDXguc781.jpg
  对于普通的分区,扩展度不高,一旦分区格式化完成,很难灵活的再增加或者减少分区大小。为了解决这个问题,可以使用LVM(逻辑卷)。基本过程是把物理磁盘或者分区初始化称为物理卷(PV),然后把PV加入VG(卷组),最后在VG上划分逻辑的分区(LVM),LVM可以当做普通的分区进行格式化和挂载。
  将准备的磁盘或分区创建PV
   wKiom1fKFDCwGOhrAAA-iJ1iE-A558.jpg
  可以执行pvdisplay查看PV的详细信息,pvremove删除PV
  创建完PV,之后,需要创建VG,然后添加PV到VG中
  可以通过vgdisplay查看具体的信息,注意PE的Size是4M,这个是增减的最小计算单位
   wKioL1fKFDGzXSxiAAB8my_kf7g780.jpg
  注:创建VG时:使用–s选项的作用是在创建时指定PE块(物理扩展单元)的大小,默认是4M。
  如:# vgcreate volGroup03 -s 8M /dev/sdb[12])
  我们可以继续往vg里面添加新的分区
   wKioL1fKFDPRpy6aAABVibOmO2k044.jpg
  若事先没有把sdb3转化为pv,而是直接添加到vg里面,不过一旦添加了他自动就初始化成pv了。
  可以添加当然也可以减少pv。 #vgreduce vg00 /dev/sdb3
  VG准备就绪,可以创建了LVM了
   wKioL1fKFDSjRQytAABEe6bwXBo304.jpg
  注意看他的大小其实是112M,因为PE的大小是4M,这个4M是最小单位,不能破开,因此28个PE就是112M
   wKiom1fKFDTj8iy4AAAWKXAz3zc556.jpg
   wKioL1fKFDWTuqxqAABbXQxynT8613.jpg
  注:大L可以直接指定大小,小l是指定多少个PE的值
  也可以设置剩余空间的百分比
   wKiom1fKFDXi8ZLaAAAZc88evEg245.jpg
  删除逻辑卷 #lvremove /dev/vg00/lv01
  对已经创建的逻辑卷,可以当做普通分区一样格式化和挂载
   wKiom1fKFDbyFrNjAAA2eCSclI8470.jpg
  修改/etc/fstab文件实现开机自动挂载。
  扩展一个逻辑卷,增加300M,首先要确保卷组有大于300M的空闲空间。
   wKioL1fKFDfhiAFOAABZWl8Ea34551.jpg
  执行lvextend扩展逻辑卷大小
   wKiom1fKFDfAJyB0AABn_j1ZLl8772.jpg
  注意逻辑卷的文件系统仍然是109M没有改变,我们还需要填充文件系统的空白。
  RHEL7可以用xfs_growfs来扩大XFS文件系统,也可以直接用resize2fs 来处理设备
  注意的是 XFS系统只能增长,不能减少!因此如果需要减少LVM的话,分区只能使用ext4了
   wKiom1fKFDjhdzoxAABLmwGwr58144.jpg
  执行df查看扩展后的文件系统
   wKioL1fKFDmjFTYlAAA_8N3_CTo813.jpg
  逻辑卷快照
  LVM提供一个极妙的设备,它是snaphot。允许管理员创建一个新的块装置,在某个时间点提供了一个精确的逻辑卷副本,快照提供原始卷的静态视图LVM 快照通过把文件系统的改变记录到一个快照分区,因此当你创建一个快照分区时,你不需要使用和你正创建快照的分区一样大小的分区,所需的空间大小取决于快照的使用,所以没有可循的方法来设置此大小。如果快照的大小等于原始卷的大小那么快照永远可用。
  快照是特殊的逻辑卷,只可以对逻辑卷做快照。逻辑卷快照和需要做快照的逻辑卷必须在同一个卷组里面
  现在在我们的系统中有个逻辑卷/dev/vg00/lv00,我们用lvdisplay来查询一下这个逻辑卷
   wKiom1fKFDrTiodsAABPsIvzNqY476.jpg
   wKioL1fKFDviPrO2AABDfRNjPLc909.jpg
  可以看到,这个逻辑卷/dev/vg00/lv00的大小是309M。我们将这个逻辑卷/dev/vg00/lv00挂载到/data下面。复制一些数据到/data里面去。方便等下做试验
   wKioL1fKFDuzZDwFAAA5Rf2TAtk836.jpg
  现在我们就为逻辑卷/dev/vg00/lv00来做快照
   wKiom1fKFDzC5F4-AAAWNUEEukg933.jpg
  执行lvscan查看创建好的逻辑卷
   wKioL1fKFDzBz7qJAAA44OGLibg803.jpg
  可以看到/dev/vg00/lv00是原始逻辑卷,而/dev/vg00/lvsp00是快照
  执行lvdisplay或lvs命令查看逻辑信息
   wKiom1fKFD2DAGmJAABX-al27Vs211.jpg
  可以看到逻辑卷快照创建成功了,
  注意:这个快照卷建好之后,是不需要格式化也不需要进行挂载的。格式化或挂载都会出现的错误提示的。
  模拟将原逻辑卷中的数据删除
   wKioL1fKFD7QI9JCAAAPQuZ_tAw395.jpg
  如何恢复原逻辑卷的数据?有两方式可以恢复删除的数据
  方式一是先将原逻辑卷卸除挂载#umount /dev/vg00/lv00
  然后挂载逻辑卷快照即可 #mount /dev/vg00/lvsp00 /data,就可以正常访问数据了
   wKioL1fKFD6BLDFNAAAhTY7ZV9k180.jpg
  方式二可以通过 lvconvert把快照的内容重新写回原有的lvm
  先将原逻辑卷卸除挂载#umount /dev/vg00/lv00
  执行lvconvert将快照的数据合并到原逻辑卷 #lvconvert --merge /dev/vg00/lvsp00
  最后挂载原逻辑卷,查看数据是否恢复成功
   wKioL1fKFD_DIjbhAAA4VnkJ82A224.jpg
  注:当我们把原逻辑卷里面的数据给删除了,逻辑卷快照里面的数据还在,所以可以用快照恢复数据。而当我们在逻辑卷里面添加数据,快照是不会发生改变的,是没有这个文件的。因为快照只会备份当时逻辑卷的一瞬间。
  使用ssm(系统存储管理器)进行逻辑管理
  逻辑卷管理器(LVM)是一种极其灵活的磁盘管理工具,它让用户可以从多个物理硬驱创建逻辑磁盘卷,并调整大小,根本没有停机时间。最新版本的CentOS/RHEL 7现在随带系统存储管理器(又叫ssm),这是一种统一的命令行界面,由红帽公司开发,用于管理各种各样的存储设备。目前,有三种可供ssm使用的卷管理后端:LVM、Btrfs和Crypt
  准备ssm,在CentOS/RHEL 7上,你需要首先安装系统存储管理器。可以通过rpm或yum工具安装
   wKiom1fKFECxaMkeAAAldFokpGw087.jpg
  首先我们来检查关于可用硬盘和LVM卷的信息。下面这个命令将显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。
  #ssm list
   wKioL1fKFECymU4wAAB_iYdPmI0405.jpg
  在这个例子中,有两个物理设备(“/dev/sda”和“/dev/sdb”)、二个存储池(“rhel和vg00”),以及存储池rhel中创建的两个LVM卷(“dev/rhel/root”和“/dev/rhel/swap”),存储池vg00中创建的一个LVM卷(/dev/vg00/lv00)。
  下面来讲解如何通过ssm创建、管理逻辑卷和逻辑卷快照
  至少新添加一块磁盘,执行ssm命令显示现有磁盘存储设备、存储池、LVM卷的信息
   wKiom1fKFEGRslyHAABY_3NEZDc785.jpg
  可以看到有两块空闲磁盘(sdc、sdd)
  创建新的LVM池/卷
  在这个示例中,不妨看一下如何在物理磁盘驱动器上创建新的存储池和新的LVM卷。如果使用传统的LVM工具,整个过程相当复杂,需要准备分区,需要创建物理卷、卷组、逻辑卷,最后还要建立文件系统。不过,若使用ssm,整个过程一蹴而就!
  下面这个命令的作用是,创建一个名为mypool的存储池,创建存储池中名为lv01的500MB大小的LVM卷,使用XFS文件系统格式化卷,并将它挂载到/mnt/test下。
   wKiom1fKFEKghwFpAABly6RGNpI570.jpg
  验证ssm创建的结果
   wKiom1fKFEKRJ1gwAABToJu400E515.jpg
  或执行ssm list
   wKiom1fKFEOgrgJiAACi1bub_jY370.jpg
  将物理磁盘(sdd)添加到LVM池
   wKioL1fKFETCexsQAAA_0iStLzw496.jpg
  新设备添加到存储池后,存储池会自动扩大,扩大多少取决于设备的大小。检查名为centos的存储池的大小执行ssm list查看
   wKiom1fKFETx8Tv4AABnUYPxJGQ419.jpg
  接下来,我们来扩大现有的LVM卷
  扩大LVM卷,不妨将/dev/mypool/lv01卷的大小增加300MB。
  如果你在存储池中有额外空间,可以扩大存储池中现有的磁盘卷。为此,使用ssm命令的resize选项
   wKioL1fKFEWzHavrAABcieMUYo4390.jpg
  执行ssm list查看扩大后逻辑卷
   wKioL1fKFEaRSwCBAABAOETGqs0381.jpg
  可以看到逻辑卷扩大到800M,即在原来的基础上增加了300M,但文件系统大小(Fs size)还没有改变,仍然是原来的大小。
  为了让文件系统识别增加后的卷大小,你需要“扩大”现有的文件系统本身。有不同的工具可用来扩大现有的文件系统,这取决于你使用哪种文件系统。比如说,有面向EXT2/EXT3/EXT4的resize2fs、面向XFS的xfs_growfs以及面向Btrfs的btrfs,不一而足。
  在这个例子中,我们使用CentOS 7,XFS文件系统在默认情况下创建。因而,我们使用xfs_growfs来扩大现有的XFS文件系统。
   wKiom1fKFEaQIsYaAAA6UD6wM8g212.jpg
  扩大XFS文件系统后,查看结果
   wKioL1fKFEfQsoRcAAA_NakwsX8371.jpg
  或执行#df -hT
   wKioL1fKFEiAjTO5AABAwnUjz6Q434.jpg
  可以看到LVM扩展成功
  逻辑卷快照
  对现有的LVM卷(比如/dev/mypool/lv01)生成快照
  一旦快照生成完毕,它将作为一个特殊的快照卷存储起来,存储了原始卷中生成快照时的所有数据
   wKioL1fKFEizE94yAAAdtZGdGDI660.jpg
   wKiom1fKFEjShjuYAAAmOvFWElI479.jpg
   wKiom1fKFEmCjf2qAAAuCX4jocw718.jpg
  每次原LVM中的数据更改,都可以手动执行ssm snapshot生成快照
  当原LVM数据损坏就可以用快照恢复了
  方式一是先将原逻辑卷卸除挂载 #umount /dev/vg00/lv00
  然后挂载逻辑卷快照即可 #mount /dev/vg00/lvsp00 /data,就可以正常访问数据了
   wKiom1fKFEmTGJokAAAkG9S-8g8290.jpg
  方式二可以通过 lvconvert把快照的内容重新写回原有的lvm
  先将原逻辑卷卸除挂载#umount /dev/vg00/lv00
  执行lvconvert将快照的数据合并到原逻辑卷 #lvconvert --merge /dev/vg00/lvsp00
  最后挂载原逻辑卷,查看数据是否恢复成功
   wKioL1fKFEryHtKYAAA-O4aRLnE356.jpg
  有磁ssm的具体用法可以参考ssm的帮助手删页
  如:删除LVM卷#ssm remove <volume>
  删除存储池#ssm remove <pool-name>


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-268052-1-1.html 上篇帖子: centos7 selinux 下篇帖子: centosISCSI网络存储服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表