linux逻辑卷

部署逻辑卷

常见的lvm部署命令

功能/命令 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩展 vgextend lvextend
缩小 vgreduce lvreduce

让添加的硬盘支持lvm技术

pvcreate /dev/sdb /dev/sdc

Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created

创建卷组 juanzu1,并将两块硬盘添加进去,然后查看卷组的状态

[root@bogon ~]# vgcreate juanzu1 /dev/sdb /dev/sdc
  Volume group "juanzu1" successfully created
[root@bogon ~]# vgdisplay juanzu1 
  --- Volume group ---
  VG Name               juanzu1
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5118 / 19.99 GiB
  VG UUID               tCEC2h-jBO1-TrJ1-uFXt-VSLn-C3Ua-c5hfxm
  
#如何修改    PE Size(逻辑卷扩缩容的基本单位)
vgcreate -s 16M    卷组名 /dev/sd(a1,b1)    #创建的时候就指定PE Size

切割出一个150mb的逻辑卷设备

注意切割单位的问题,在对逻辑卷切割时有两种计量单位,

容量为单位使用 -L (- l +100%FREE #把剩余的容量都用光)

基本单元的个数为单位使用 -l(每个单元大小默认是4mb)

[root@bogon ~]# lvcreate -n aa -l 37 juanzu1
  Logical volume "aa" created
#在卷组juanzu1 创建一个名为aa的逻辑卷,大小是4*37
#把生成的逻辑卷进行格式化,然后挂载目录使用
#Linux系统会把LVM中的逻辑卷设备存放在/dev设备目录中(实际上是做了一个符号链接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)
[root@bogon ~]# mkfs.xfs /dev/juanzu1/aa 
meta-data=/dev/juanzu1/aa        isize=256    agcount=4, agsize=9472 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
。。。。。。
[root@bogon ~]# mount /dev/juanzu1/aa /raid5/
[root@bogon ~]# df -h
/dev/mapper/juanzu1-aa  145M  7.6M  138M   6% /raid5
[root@bogon ~]# echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab

###xfs
lvcreate  -n xfs -l 25 juanzu1
mkfs.xfs /dev/juanzu1/xfs
mount /dev/juanzu1/xfs  /xfs
物理卷扩容
pvcrate /dev/新分区    #把新的分区加入到逻辑卷中
vgextend 卷组名 /dev/新分区
lvextend -L 24G    /dev/vg0/lv0        #把lv0 扩展到24g -L 扩展到多大 (mb gb为单位)
lvextend -l pe_size /dev/vg0/lv0    #把lv0 增加多少空间 -l增加多少 (pe_size为单位)

resize2fs /dev/vg0/lv0    #把刚加入卷的空间格式化为和原来空间一样的文件系统

lvextend -r -l +100%FREE /dev/vg0/lv0     #  -r=resize2fs /dev/vg0/lv0
df -h
部署逻辑卷xfs

pvcreate /dev/sdb /dev/sdc

vgcreate juanzu /dev/sdb /dev/sdc

lvcreate -n xfs_test -L 50m juanzu

mkfs.xfs /dev/juanzu/xfs_test

扩大逻辑卷xfs,xfs逻辑卷无法缩小
[root@bogon /]# lvextend -L 200m /dev/juanzu/xfs 
  Extending logical volume xfs to 200.00 MiB
  Logical volume xfs successfully resized

[root@bogon /]# xfs_growfs /dev/juanzu/xfs -D BLOCK块
......
data blocks changed from 51200 to 64000


[root@bogon /]# xfs_growfs /挂载点#刷新分区空间
lvextend -r -l +100%FREE /dev/juanzu/xfs 
扩容逻辑卷ext4

扩展前请一定要记得卸载设备和挂载点的关联

[root@bogon ~]# umount /raid5/

把上一个实验的150mb的逻辑卷扩容到300mb

lvextend -L 300mb /dev/juanjuz1/aa

检查硬盘完整性,并重置硬盘容量

##检查硬盘被扩容好了没有
[root@bogon ~]# e2fsck -f /dev/juanzu1/aa
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/juanzu1/aa: 11/25688 files (9.1% non-contiguous), 8896/102400 blocks

##重置硬盘容量
[root@bogon ~]# resize2fs /dev/juanzu1/aa 
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/juanzu1/aa to 155648 (1k) blocks.
The filesystem on /dev/juanzu1/aa is now 155648 blocks long.

#重新挂载查看挂载属性
/dev/mapper/juanzu1-aa   144M  1.6M  132M   2% /ext4
缩小逻辑卷ext4

1,先解除挂载

2,e2fsck -f /dev/卷组/逻辑卷 #检查文件系统的完整性

3,resize2fs /dev/卷组/逻辑卷 120M #缩小逻辑卷到120m(不能带b)

​ lvreduce -L 120M /dev/卷组/逻辑卷

4,重新挂载并查看挂载属性

逻辑卷快照

快照卷的容量必须等于逻辑卷的容量

快照卷仅有效一次,执行还原操作后会被立即删除

1,先看卷组的信息

​ vgdisplay

2,利用重定向往逻辑设备挂载的目录写入一个文件

​ echo "Welcome to liyang.com" > /挂载目录/readme.txt

3,使用-s参数生成一个快照卷,使用-L参数指定切割的大小,还需在命令后加上针对那个逻辑卷的操作

​ lvcreate -L 120M -s -n 快照名称 /dev/卷组/逻辑卷

lvcreate -n 快照名称 -L 快照大小(2G) -s -p r(只读) /dev/卷组、逻辑卷

4,在逻辑卷中写入数据

​ dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M

5,执行还原操作

​ 1,先解除挂载

​ 2,lvconvert --merge /dev/卷组/快照名称

​ 3,重新挂载逻辑卷,并看挂载信息

删除逻辑卷

1,解除挂载

2,lvremove /dev/卷组/逻辑卷 #删除逻辑卷

删除卷组

vgremove 卷名

删除物理卷设备

pvremove /dev/sdb /dev/sdc

跨主机迁移卷组
#旧主机
pvcreate /dev/sde                #添加硬盘支持lvm
vgcreate vg0 /dev/sde            #创建卷组“vg0",并加入硬盘
vgdisplay vg0                    #查看卷组vg0
lvcreate -l 100%FREE -n lv0 vg0    #在卷组vg0上,创建逻辑卷lv0,-l使用全部的空间    
mkfs.ext4 /dev/vg0/lv0            #格式化硬盘,并创建文件系统
mount /dev/vg0/lv0 /test        #挂载
cp -av /root/* /test/            #拷贝测试文件
umount /test                    #解除挂载
vgrename vg0 vg100                #防止本机逻辑卷迁移到新主机上重名,改一下名字
lvrename /dev/vg100/lv0 /dev/vg100/lv100    #同上改名
vgchange -an vg100                 #禁用逻辑卷组vg100
vgexport vg100                    #导出卷组

#新主机
echo '- - -' > /sys/class/scsi_host/host0/scan    #重新读取硬盘挂载数据
vgimport vg100                     #导入卷组vg100
vgchange -ay vg100                #启用逻辑卷组vg100
mount /dev/vg100/lv100 /test    #挂载lvm,并且查看刚才的测试文件是否存在

实验报错

[root@localhost ~]# mdadm /dev/md0 -a /dev/sdc
mdadm: Cannot open /dev/sdc: Device or resource busy

解决方法1:重启服务器

[root@localhost ~]# mdadm /dev/md0 -a /dev/sdc
mdadm: added /dev/sdc

扩展分区报错:

[root@bogon ~]# xfs_growfs -L 300MB /dev/juanzu1/aa
xfs_growfs: /dev/juanzu1/aa is not a mounted XFS filesystem

上一篇:三大运营商集体宣布5G启用时间,买iphone X的人后悔了吗?


下一篇:MySQL 数据恢复方法(一)