开发者学堂课程【Linux 磁盘与文件系统管理:逻辑卷管理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/589/detail/8333
逻辑卷管理
内容介绍:
一、逻辑卷管理
二、逻辑卷的缩减和扩展
一、逻辑卷管理器(LVM)
1、突出优势:方便拓展空间,能够充分解决传统的分区方式的局限性。
2、按照默认的分区方式来安装 Linux 系统,默认就是用逻辑卷来组织磁盘空间。
逻辑卷把多个不同的硬盘或者分区逻辑组在一起,同 raid
3、逻辑卷可以将硬盘或者分区逻辑地组在一起,形成一个单位,该单位称为卷组,卷组的容量就是由多块硬盘分区组合起来。
4、逻辑卷和 raid 的区别:raid 要求每个成员大小一样,逻辑卷没有这个要求。逻辑卷也没有要求放过具体指向的硬盘上。同一个硬盘的不同分区也可以,不同的硬盘和不同分区的硬盘都可以,没有严格要求。
5、逻辑卷创建完一个卷组之后,他是个逻辑上的单位,可以想象成一个逻辑上的大硬盘。
有了卷组之后,在上面继续创建小的存储,小的存储单位从称之为逻辑卷。小的逻辑卷实际上是从卷组分出的空间组合起来的。
而逻辑卷是由多块硬盘或者分区组和在一起,且逻辑卷的空间来源于卷组,而卷组的空间多来自于多块硬盘,也就意味着逻辑卷的空间,也可能来自于多块硬盘。所以创建了逻辑卷之后,如果空间不够,可以从卷组空间的剩余空间进行扩充逻辑卷。
6、该图就是整个逻辑卷的几个过程,最下面的是 Linux 的设备,这四个设备实际上相当于四个硬盘或者分区,就是普通的硬盘或者分区。
①第一步把 Linux 的这种普通的分区硬盘。
变成一个教物理卷的东西。叫菲迪克。变成物理据需要用一个命令,对应的叫 PV。这个 PV create 命令本质实际上就是在这四个设备上贴了个标签。这四个设备,将来不是分区用了。不是当普通硬盘用了,是当逻辑卷用了。
但是并没有大的变化。这四个设备仍然表现为孤立的设备,文件仍然它的物理卷,这个名称和设备和分区的名称或者硬盘的名称是一致的。假设有一个 sdti,这是个物理分区,那么把它变成逻辑卷以后,他的名字还叫 DV 下的 idt。是没有变化的。
变成物理卷之后,现在就可以把物理卷纳入到一个统一的逻辑上的一个概念,就是卷组。
②这个Vodafone group 这个逻辑上的概念,是由指定了多个 PV 的总容量组合起来的。这个图上画的这个大的盘子,实际上就相当于这个四个物理设备的总和。
③接着在里边分小的,这个在逻辑上类似于分区,逻辑卷一定是来自于某个卷组的,由于机上可能不止一个卷组,可能有多个卷组,所以要在逻辑卷上标识出来是哪个卷组。
7、允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
8、允许在多个物理设备间重新组织文件系统
将设备指定为物理卷
用一个或者多个物理卷来创建一个卷组
物理卷使用固定大小的物理区域(Physical Extent,PE)来定义的。
在屋里卷上创建的逻辑卷是由物理区域(PE)组成。。可以在逻辑卷上创建文件系统
9、相关实际操作代码
1sb1k
#fdisk /dev/sda
8e
partx -a /dev/sda
查看物理卷命令:pvs
Pvdisplay
Pvcreat/dev/sd{a6,c}
Vgs
Vgdislay
Vgcreat vg0/dev/sd/{a6,c}
Pvs
Ivcreat -n -I
(指的是 pe 的次数)L(单位)vg0
Ivs
Ivdisplay
II /dev/vg0/Iv-mysqI
II /dev/mapper/bg0-Iv-mysqI
Pvdisplay
Mkfs.ext4 /dev/vg0/Iv-mysqI
bIkid
Mkdir /mnt/mysqI
Mount/dev/mysqI
Mount /dev/vg
Mount/dev/vg0/Iv-mysqI /mnt/mysqI
Df-h
Dd if =/dev/zero/ of =mnt/mysq/Idb1 bs =1M count -1024
Dd if =mnt.mysqI/db1/ bs=1M count =1024
Dd if =mnt.mysqI/db1 of =dev/nuII
Df -h
扩展要看卷组空间够不够 vgdisplay 查看
Iextend -I + 100%FREE /dev/vg0/Iv-mysqI
Vgdisplay
Df -h
Df -hT
Resize2fs /dev/vg
Resize2dfs /dev/vg
Resize2fs /dev/vg0/IvmysqI
(该命令具有局限性)
Df- hT
扩展逻辑卷步骤:
①扩展容量
②扩展文件系统
Xfs-growfs /mnt/mysqI
Df - T
IsbIk
Pvcreat /dev/sdb/
Pvs
Vgextend vg0 /dev/sdb
Vgdisplay
缩减逻辑卷(5步骤)
缩减文件系统再缩减逻辑卷的空间大小
Umount /mnt/mysqI
Vgdisplay
Resize2fs /dev/vg
Resize2fs /dev/vg0/Iv-mysqI 20G
e2fsck -f /dev/vg0/Iv-mysq]
Resize2fs /dev/vg0/Iv-mysqI 20G
Ivgdiaplay
Ivreduce -L 20G /dev/vg0/Iv=mysqI
Cat /etc/fstab
Mount /dev/vg0/Iv-mysqI/mnt/mysqI/
Df-h
相关笔记
843512*63*1024*255
844
845MBR
846主分区:1-4
847扩展分区:扩展+主分区<=4
848逻辑分区:
849
850k,m,g'tp,e,z,y,b,n,d
851
852
853实验:分区表的备份和还原
854
855
856/dev/sda2[root@centos6~]#blkid-U`sed -r's#^UUID=(.*)/.*#\1#p'/etc fstab
857
858在 centos6 之前版手动创建的 ext 分区,默认没有 ACL 功能
859
860个设备可以同时挂载到多个目录
861一个目录可挂载多个设备呢?不可以
862
863 实验:增加一块新硬盘,分区,创建文件系统 XFSIEXT4,挂载
864
865实验: /etc/fstab 文件错误,无法启动,故障排错 centos6,7
866
867实验:实现 swap 分区
868
869迁移 /home 目录到新分区中
870 实现 raid10
871
872
873 实验:创建 LVM
874
8751 fdiskt 8e /dev/sda6
876/dev/sdc
877
8782pvcreate /dev/sda6 /dev/sdc
879
8803 vgcreate vg0 /dev/sda6/dev/sdc
881
8824 lvcreate -n lv mysql-L15G vg0
883
8845mkfs.ext4 /dev/vg0/lv mysql
885
8866 mount /dev/vg0/lvmysql /mnt/mysql
887
888
889实验: 扩展 LVM
890
891 1 vgdisplay 查看 vG 有空闲空间892
8932 lvextend-1 +1008FREE /dev/vg0/lv mysql
894
8953 resize2fs /dev/vg0/lv mysql
896 4 df
897
898
889实验:扩展 LVM
890
891 1 vgdisplay 查看 vG 有空闲空间
892
8932 lvextend -1 +1008FREE /dev/vg0/lv mysql
894
8953 resize2fs /dev/vg0/lv mysql
896
8974 df
898
899
900实验: 缩减 LVM
901
9021 umount / mnt / mysql
903
9042 fsck -f /dev/vg0/lv-mysql
905
906 3 resize2fs/dev/vg0/lv-mysq120G
907
9084 lvreduce-L 20/dev/vg0/lv-mysql
909
9105 mount /dev/vg0/lv-mysq1 /mnt/mysql
911
二、跨主机迁移卷组
逻辑卷实现迁移
pvdisplay
Pvmove /dev/sda6
Pvdisplay
Vgreduce vg0 dev/sda6
Pvdisplay
Fdisk /dev/sda
Partx -d --nr6 /dev/sda
IsbIk
Vgdisplay
Pvdisplay
Df -h
Umount/mnt/mgsqI/
Fsck -f /dev/vg0/Iv-mysqI
Resize2fs /dev/vg0/Iv-mysqI 10G
Ivreduce -L 10G /dev/vg0/Iv-mysqI
Mount /dev/vg0/Iv-mysqI /mnt/mysqI/
Df-h
Pvdisplay
Vgreduce vg0 /dev/sdb
Pvs
Umount /mnt/iso/
Umount/mnt/etc
Df
Xfs-growfs/mnt/mysqI^C
IsbIk
Umount/mnt/home/
Pvcreat /dev/sdd
Pvdisplay
Vgcreat -n Iv data-L 1G vg0
Vgdisplay
Ivdisplay
Vgrename vg0 newvg0
Ivdiplay
Ivrenamme
Umount /mnt/mysqI/
Vgdisplay
Vgchange -an newvg0
Vgdiaplay
Idisplay
Vgexport newvg0
Ivgdisplay
Vgdisplay
Pvsdisplay
关机
找逻辑卷硬盘空间的位置
迁移到新的空间上
IsbIk
加硬盘
Scandisk
IsbIk
Pvs
Pvscan
Vgimport newvg0
Vgdisplay
Idisplay
Vgchange -ay newvg0
Ivdiplay
Mkdir/mnt/mgsqI
Mount /dev/newvg0/Iv-mysqI /mnt/mysqI
Df
Df -h
Cd /mnt/mysqI/
Is
Mkdir /mnt/data
bIkid
Mkfs.xfs /dev/vg0/Iv-data
Mount /dev/vg0/ Iv-data/mnt/data
Df
Ivextend -L+2G dev/vg0/Iv-data
Xfs-growfs/mnt/data
Df-h
Vextend -r -L 5G /dev/vg0/Iv-data
Df-h
1、源计算机上
(1)在旧系统中,umount所有卷组上的逻辑卷
(2)禁用卷组:vg-change --a n vg0
Ivdisplay
(3)导出卷组
Vgexport vg0
pvscan
Vgdisplay
拆下旧硬盘
2、在目标计算机上
(4)在新系统中安装旧硬盘,并导入卷组:vgimport vg0
(5)Vgchange-ay vg0 启用
(6)mount 所有卷组上的逻辑卷
二、LVM 介绍
1、LVM: Logical Volume Manager, Version: 2
2、dm:device mapper: 将一个或多个底层块设备组织成一个逻辑设备的模块
3、设备名 :/dev/dm-#
4、软链接:
/dev/mapper/VG NAME-LV_NAME
/dev/mapper/vol0-root/dev/VG NAME/LV NAME
/dev/vol0/root
三、pv 管理工具
1、显示 pv 信息
Pvs:简要 pv 信息显示
Pvdisplay
2、创建 pv
Pvcreat \dev\DEVICE
3、删除 pv
Pvremove \dev\DEVICE
四、vg 管理工具
1、显示卷组
vgs
Vgdisplay
2、创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroup Name
PhysicalDevicePath [PhysicalDevicePath...
3、管理卷组
Vgextend VolumeGroupName PhysicalDeviceR ath [PhysicalDevicePath... ]
vgreduce VolumeGroupName PhysicalDeviceF ath [PhysicalDevicePath...]
4、删除卷组
先做 pvmove,再做 vgremove
五、扩展和缩减逻辑卷
1、扩展逻辑卷:
lvextend -L [+]#[mMgGtT] /dev/ G NAME/LV NAME
resize2fs /dev/VG NAME/LV NAN ME
lvresize -r-|+100%FREE/dev/VG
NAME/LV NAME
2、缩减逻辑卷:
umount /dev/VG NAME/LV NAME
e2fsck -f/dev/VG NAME/LV NAM ME
resize2fs /dev/VG NAME/LV NAN ME #[mMgGtT]
lvreduce -L [-]#[mMgGtT]/dev/V G_NAME/LV NAME mount
六、创建逻辑示例
1、创建物理卷
pvcreate /dev/sda3
2、为卷组分配物理卷
vgcreate vg0 /dev/sda3
3、从卷组创建逻辑卷
Ivcreate -L 256M -n data vg0
mkfs.xfs -j /dev/vg0/data
4、挂载
mount /dev/vg0/data /mnt/data
七、逻辑卷管理器快照
1、快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
2、对于需要备份或者复制的现有数据临时拷贝以及其它操作来说,快照是最合适的选择
3、快照只有在它们和原来的逻辑卷不同时才会消耗空间
(1)在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
(2)当原来的逻辑卷中有所改变时,会将旧的数据复复制到快照中。
(3)快照中只含有原来的逻辑卷中更改的数据或者目目生成快照后的快照中更改的数据
(4)建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可以使用 lvextend 放大快照。