LVM的扩展,删除和创建快照

linux系统管理 struggling 1112次浏览 0个评论

LVM 最大的特色就是弹性调整磁盘容量,下面就进行实际演示!

一、扩展逻辑卷;

扩展时需要先扩展物理边界,然后再扩展逻辑边界,逻辑边界不能超过物理边界,扩展物理边界使用到的命令是lvextend,扩展逻辑边界使用到的命令是resize2fs,扩展是在线扩展的,不影响原有文件的使用。所以,扩展的步骤大致如下所示:
1,用 fdisk 配置新的具有 8e system ID 的 partition
2,利用 pvcreate 建置 PV
3,利用 vgextend 将 PV 加入我们的 ,testlv
4,利用 lvresize 将新加入的 PV 内的 PE 加入 testlv 中
5,透过 resize2fs 将文件系统的容量确实添加!

resize2fs使用方法如下:

<code>
[root@www ~]# resize2fs [-f] [device] [size]
选项与参数:
-f      :强制进行 resize 的动作!
[device]:装置的文件名称;
[size]  :可以加也可以不加。如果加上 size 的话,那么就必须要给予一个单位,比如 M, G 等等。如果没有 size 的话,那么默认使用整个 partition的容量来处理!
-p : 扩展到和物理分区一样大。
</code>

扩展物理边界:

<code>
←#89#root@localhost /users  →lvextend -L 5G  /dev/myvg1/testlv  #扩展到5G或者使用lvextend -L +3G  /dev/myvg1/testlv 
  Size of logical volume myvg1/testlv changed from 2.00 GiB (256 extents) to 5.00 GiB (640 extents).
  Logical volume testlv successfully resized
  </code>

扩展逻辑边界:

<code>
←#91#root@localhost /users  →df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  7.3G  9.3G  45% /
tmpfs                 504M  200K  503M   1% /dev/shm
/dev/sda1             283M   26M  242M  10% /boot
/dev/mapper/myvg-mydata
                      5.0G  200M  4.5G   5% /mydata
/dev/mapper/myvg1-testlv
                      2.0G   68M  1.9G   4% /users     ---》2G
←#92#root@localhost /users  →lvs
  LV     VG    Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mydata myvg  -wi-ao---- 5.00g                                                    
  testlv myvg1 -wi-ao---- 5.00g   

←#93#root@localhost /users  →resize2fs -p  /dev/myvg1/testlv   #扩展逻辑边界和物理边界一样大
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg1/testlv is mounted on /users; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg1/testlv to 1310720 (4k) blocks.
The filesystem on /dev/myvg1/testlv is now 1310720 blocks long.

←#94#root@localhost /users  →df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  7.3G  9.3G  45% /
tmpfs                 504M  204K  503M   1% /dev/shm
/dev/sda1             283M   26M  242M  10% /boot
/dev/mapper/myvg-mydata
                      5.0G  200M  4.5G   5% /mydata
/dev/mapper/myvg1-testlv
                      5.0G   69M  4.7G   2% /users    -----》5G

</code>

二、缩减逻辑卷;

注意:1、不能在线缩减,得先卸载;
2、确保缩减后的空间大小依然能存储原有的所有数据;
3、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态;

<code>
←#100#root@localhost ~  →umount /users/  #先卸载

←#101#root@localhost ~  →mount 
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/myvg-mydata on /mydata type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)

←#102#root@localhost ~  →e2fsck -f /dev/myvg1/testlv  #强制检查文件系统
e2fsck 1.41.12 (17-May-2010)
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/myvg1/testlv: 12/327680 files (0.0% non-contiguous), 38000/1310720 blocks

←#104#root@localhost ~  →resize2fs /dev/myvg1/testlv 3G  #缩减逻辑边界至3G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg1/testlv to 786432 (4k) blocks.
The filesystem on /dev/myvg1/testlv is now 786432 blocks long.

←#105#root@localhost ~  →lvreduce -L 3G /dev/myvg1/testlv  #缩减物理边界值3G
  WARNING: Reducing active logical volume to 3.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testlv? [y/n]: y
  Size of logical volume myvg1/testlv changed from 5.00 GiB (640 extents) to 3.00 GiB (384 extents).
  Logical volume testlv successfully resized
  
←#106#root@localhost ~  →mount -a   #重新挂载

←#107#root@localhost ~  →mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/myvg-mydata on /mydata type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
/dev/mapper/myvg1-testlv on /users type ext3 (rw,acl)
</code>

三、创建快照卷:创建的目的是为了备份的需要

1、生命周期为整个数据时长;在这段时长内,数据的增长量不能超出快照卷大小;
2、快照卷应该是只读的;
3、跟原卷在同一卷组内;

使用lvcreate创建快照卷, -s 表示为快照卷-p指定文件系统的读取权限 (r|w),命令大致如下:

<code>
lvcreate -L # -n SLV_NAME -p r /PATH/TO/LV
</code>
<code>
←#10#root@localhost ~  →df -lh  #查看使用量
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  7.3G  9.3G  45% /
tmpfs                 504M  208K  503M   1% /dev/shm
/dev/sda1             283M   26M  242M  10% /boot
/dev/mapper/myvg-mydata
                      5.0G  200M  4.5G   5% /mydata
/dev/mapper/myvg1-testlv
                      3.0G  139M  2.7G   5% /users

←#113#root@localhost /users  →lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg1/testlv  #创建快照卷,大小必须大于等于使用的
  Rounding up size to full physical extent 56.00 MiB
  Logical volume "testlv-snap" created
←#114#root@localhost /users  →lvs
  LV          VG    Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mydata      myvg  -wi-ao----  5.00g                                                    
  testlv      myvg1 owi-aos---  3.00g                                                    
  testlv-snap myvg1 sri-a-s--- 56.00m      testlv 0.02             
                      
←#115#root@localhost /users  →mount /dev/myvg1/testlv-snap /mnt/  #挂载
mount: block device /dev/mapper/myvg1-testlv--snap is write-protected, mounting read-only

←#116#root@localhost /users  →cd /mnt/

←#117#root@localhost /mnt  →cat  fstab   #检查文件是否能读取

#
# /etc/fstab
# Created by anaconda on Mon Apr 20 12:35:03 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=a513b95f-c2cd-49a5-8fc7-1903f74d6dab /                       ext4    defaults        1 1
UUID=c691b684-befb-4215-8d34-4a1063927955 /boot                   ext4    defaults        1 2
UUID=da3b73a0-20b9-415b-879e-0519af98cf4f swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/root/swap              swap                    swap    defaults        0 0
/dev/myvg/mydata        /mydata                 ext3    defaults        0 0
/dev/myvg1/testlv       /users                  ext3    defaults,acl    0 0  
#//192.168.2.114//test   /mnt                    cifs    credentials=/etc/samba/cred.passwd 0 0 


←#123#root@localhost ~  →umount  /mnt  #备份文件后卸载快照卷
←#124#root@localhost ~  →lvremove  /dev/myvg1/testlv-snap  #然后移除 
Do you really want to remove active logical volume testlv-snap? [y/n]: y
  Logical volume "testlv-snap" successfully removed
</code>

好了,我们将上述用过的一些命令给他汇整一下,提供给您参考参考:

任务 PV 阶段 VG 阶段 LV 阶段
搜寻(scan) pvscan vgscan lvscan
创建(create) pvcreate vgcreate lvcreate
列出(display) pvdisplay vgdisplay lvdisplay
添加(extend) vgextend lvextend (lvresize)
减少(reduce) vgreduce lvreduce (lvresize)
删除(remove) pvremove vgremove lvremove
改变容量(resize) lvresize
改变属性(attribute) pvchange vgchange lvchange

 

至于文件系统阶段 (filesystem 的格式化处理) 部分,还需要以 resize2fs 来修订文件系统实际的大小才行啊。至于虽然 LVM 可以弹性的管理你的磁盘容量,但是要注意,如果你想要使用 LVM 管理您的硬盘时,那么在安装的时候就得要做好 LVM 的规划了, 否则未来还是需要先以传统的磁盘添加方式来添加后,移动数据后,才能够进行 LVM 的使用啊!

会玩 LVM 还不行!你必须要会移除系统内的 LVM !因为你的实体 partition 已经被使用到 LVM 去, 如果你还没有将 LVM 关闭就直接将那些 partition 删除或转为其他用途的话,系统是会发生很大的问题的! 所以,你必须要知道如何将 LVM 的装置关闭并移除才行!可以 依据以下的流程来处理即可:

先卸载系统上面的 LVM 文件系统 (包括快照与所有 LV);
使用 lvremove 移除 LV ;
使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
使用 vgremove 移除 VG:
使用 pvremove 移除 PV;
最后,使用 fdisk 修改 ID 回来啊!


DevOps-田飞雨 》》转载请注明源地址
喜欢 (0)or分享 (0)
发表我的评论
取消评论
*

表情 贴图 加粗 链接 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址