LVM创建、扩容、数据迁移

LVM创建、扩容、数据迁移

实验:

1、新增一块10G硬盘sdb,分为sdb1、sdb2,建立5G的lv01,然后将lv扩容到10G;

2、新增一块40G硬盘sdc,将sdb硬盘里的10G数据全部迁移到sdc里,删除掉sdb盘。

一、LVM创建
1.1 fdisk划分磁盘
[root@node1 ~]# lsblk
NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                8:0    0   20G  0 disk 
├─sda1             8:1    0    1G  0 part /boot
└─sda2             8:2    0   19G  0 part 
  ├─asianux-root 253:0    0   17G  0 lvm  /
  └─asianux-swap 253:1    0    2G  0 lvm  [SWAP]
sdb                8:16   0   10G  0 disk 
sr0               11:0    1  4.3G  0 rom  
[root@node1 ~]# df -h
文件系统                  容量  已用  可用 已用% 挂载点
/dev/mapper/asianux-root   17G  6.8G   11G   41% /
devtmpfs                  977M     0  977M    0% /dev
/dev/sda1                 976M  129M  781M   15% /boot

[root@node1 ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
Select (default p): p			# 修改项
分区号 (1-4,默认 1):1			# 修改项
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB		# 修改项

命令(输入 m 获取帮助):t		# 修改项
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e	# 修改项
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):n
...
Last 扇区, +扇区 or +size{K,M,G} (10487808-20971519,默认为 20971519):
将使用默认值 20971519				# 修改项,不填写默认使用剩余所有空间
分区 2 已设置为 Linux 类型,大小设为 5 GiB		

命令(输入 m 获取帮助):t			# 修改项
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):8e	# 修改项
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p			# 查看分区
...
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   8e  Linux LVM
/dev/sdb2        10487808    20971519     5241856   8e  Linux LVM

命令(输入 m 获取帮助):w			# 保存写入
...
正在同步磁盘。

1.2 创建pv vg lv
[root@node1 ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
[root@node1 ~]# vgcreate vg01 /dev/sdb1			# 创建卷组
  Volume group "vg01" successfully created
[root@node1 ~]# vgs
  VG      #PV #LV #SN Attr   VSize  VFree
  asianux   1   2   0 wz--n- 19.00g    0 
  vg01      1   0   0 wz--n-  5.00g 5.00g
[root@node1 ~]# lvcreate -L 5G -n lv01 vg01 	# 报错:空间不足5G
  Volume group "vg01" has insufficient free space (1279 extents): 1280 required.
[root@node1 ~]# lvcreate -L 100%FREE -n lv01 vg01 # L跟数字,l跟100%
  Invalid argument for --size: 100%FREE
  Error during parsing of command line.
[root@node1 ~]# lvcreate -l 100%FREE -n lv01 vg01 # 使用全部空间
  Logical volume "lv01" created.
[root@node1 ~]# lvs
  LV   VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root asianux -wi-ao---- 17.00g                                                    
  swap asianux -wi-ao----  2.00g                                                    
  lv01 vg01    -wi-a-----  5.00g                                                    
[root@node1 ~]# mkfs.ext4 /dev/vg01/lv01 	# 格式化
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成                            
...
Writing superblocks and filesystem accounting information: 完成 
[root@node1 ~]# lsblk		# 查看现在分区
NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
sdb                8:16   0   10G  0 disk 
├─sdb1             8:17   0    5G  0 part 
│ └─vg01-lv01    253:2    0    5G  0 lvm  
└─sdb2             8:18   0    5G  0 part 
sr0               11:0    1  4.3G  0 rom 
1.3 lv扩容
[root@node1 ~]# vgextend vg01 /dev/sdb2		
  Volume group "vg01" successfully extended                                           
[root@node1 ~]# lvextend -l +100%FREE /dev/vg01/lv01
  Size of logical volume vg01/lv01 changed from 5.00 GiB (1279 extents) to 9.99 GiB (2558 extents).
  Logical volume vg01/lv01 successfully resized.    
[root@node1 ~]# resize2fs /dev/vg01/lv01 	# 刷新分区
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg01/lv01 to 2619392 (4k) blocks.
The filesystem on /dev/vg01/lv01 is now 2619392 blocks long.
[root@node1 ~]# lsblk
NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
sdb                8:16   0   10G  0 disk 
├─sdb1             8:17   0    5G  0 part 
│ └─vg01-lv01    253:2    0   10G  0 lvm  
└─sdb2             8:18   0    5G  0 part 
  └─vg01-lv01    253:2    0   10G  0 lvm  
sr0               11:0    1  4.3G  0 rom  

1.4 挂载使用
[root@node1 ~]# mkdir /data01
[root@node1 ~]# vim /etc/fstab
...
/dev/vg01/lv01 /data01 ext4 defaults 0 0
[root@node1 ~]# mount -a
[root@node1 ~]# df -h
文件系统                  容量  已用  可用 已用% 挂载点
/dev/mapper/asianux-root   17G  6.8G   11G   41% /
...
/dev/mapper/vg01-lv01     9.8G   23M  9.2G    1% /data01

二、PV数据迁移

  • 备注:新硬盘容量一定在大于旧硬盘中的数据容量,并且新旧硬盘必须在同一个VG中
  • 过程:pvcreate sdc , vg扩展 —— pv迁移数据 —— vg移除 —— pv删除
2.1 新硬盘pvcreate,vg扩展
[root@node1 ~]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created.
[root@node1 ~]# vgextend vg01 /dev/sdc
  Volume group "vg01" successfully extended
2.2 pv数据迁移到sdc上
[root@node1 ~]# pvmove /dev/sdb1 /dev/sdc
  /dev/sdb1: Moved: 0.16%
  /dev/sdb1: Moved: 52.23%
  /dev/sdb1: Moved: 100.00%
[root@node1 ~]# pvmove /dev/sdb2 /dev/sdc 
  /dev/sdb2: Moved: 0.23%
  /dev/sdb2: Moved: 59.19%
  /dev/sdb2: Moved: 100.00%
[root@node1 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
...
  /dev/sdc   vg01    lvm2 a--  40.00g 30.00g
[root@node1 ~]# vgs
  VG      #PV #LV #SN Attr   VSize  VFree 
...
  vg01      3   1   0 wz--n- 49.99g 40.00g
2.3 vg移除掉sdb1 sdb2
[root@node1 ~]# vgreduce vg01 /dev/sdb1
  Removed "/dev/sdb1" from volume group "vg01"
[root@node1 ~]# vgreduce vg01 /dev/sdb1
  Failed to find physical volume "/dev/sdb1".
[root@node1 ~]# vgreduce vg01 /dev/sdb2
  Removed "/dev/sdb2" from volume group "vg01"
[root@node1 ~]# vgs
  VG      #PV #LV #SN Attr   VSize  VFree 
  asianux   1   2   0 wz--n- 19.00g     0 
  vg01      1   1   0 wz--n- 40.00g 30.00g
2.4 pv删除掉sdb1 sdb2
[root@node1 ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped.
[root@node1 ~]# pvremove /dev/sdb2
  Labels on physical volume "/dev/sdb2" successfully wiped.
2.5 lv重新扩容,刷新容量
[root@node1 ~]# lvs
  LV   VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root asianux -wi-ao---- 17.00g                                                    
  swap asianux -wi-ao----  2.00g                                                    
  lv01 vg01    -wi-ao----  9.99g                                                    
[root@node1 ~]# lvextend -l +100%FREE /dev/vg01/lv01
  Size of logical volume vg01/lv01 changed from 9.99 GiB (2558 extents) to 40.00 GiB (10239 extents).
  Logical volume vg01/lv01 successfully resized.
[root@node1 ~]# lvs
  LV   VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root asianux -wi-ao---- 17.00g                                                    
  swap asianux -wi-ao----  2.00g                                                    
  lv01 vg01    -wi-ao---- 40.00g                                                    
[root@node1 ~]# df -h
文件系统                  容量  已用  可用 已用% 挂载点
...
/dev/mapper/vg01-lv01     9.8G   23M  9.2G    1% /data01
[root@node1 ~]# resize2fs /dev/vg01/lv01 

[root@node1 ~]# df -h
文件系统                  容量  已用  可用 已用% 挂载点
...
/dev/mapper/vg01-lv01      40G   30M   38G    1% /data01


问题收集:
  • 1、空间不足
[root@node1 ~]# lvcreate -L 5G -n lv01 vg01 	# 报错:空间不足5G
  Volume group "vg01" has insufficient free space (1279 extents): 1280 required.


  • 2、参数错误,l与L(大小写)
[root@node1 ~]# lvcreate -L 100%FREE -n lv01 vg01 # L跟数字,l跟100%
  Invalid argument for --size: 100%FREE
  Error during parsing of command line.
[root@node1 ~]# lvextend -l 100%FREE /dev/vg01/lv01
  New size (1279 extents) matches existing size (1279 extents).
[root@node1 ~]# lvextend -l 100%FREE /dev/vg01/lv01
  New size of 0 not permitted.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值