逻辑卷的常用操作-lv,vg,lv(创建、增加、缩减、无损弹性容量调整)

每日一练 Liemer_Lius 2202℃ 0评论

逻辑卷是服务器常用的文件系统格式,通过练习,熟悉逻辑卷的编辑操作,熟悉原理。

题目:
1. 新加一块磁盘(20G即可)到虚拟机;
2. 建立三个分区,一个3G,一个5G,一个7G,将这三个分区调整成Linux LVM格式,待后续使用;
3. 创建PV两个分区的PV,结束后查看PV的详细信息,扫描所有系统中的PV,移除3G的PV并重新添加;
4. 创建容量为8G的VG,PE指定大小为8M,查看VG的详细信息;
5. 将VG的容量调整到15G,然后在削减到10G;
6. 创建一个2G的LV,查看LV的详细信息;
7. 格式化以上的LV,配置/etc/fstab,将其开机挂载到/mnt目录,且支持acl功能;
8. 向/mnt目录复制/etc/inittab, /etc/issue两个文件,查看文件的行数并记录;
9. 将LV容量扩展道3G,且不影响里面的文件;
10. 将LV的容量缩减为1G(因为里面的文件很少,1G够用),且不影响里面的文件;	

操作如下:

2. 建立三个分区,一个3G,一个5G,一个7G,将这三个分区调整成Linux LVM格式,待后续使用;

# vim autopart.sh
#!/bin/bash
# To create partitions automatically。

RETVAL(){
if [ $? -eq 0 ]; then
  echo -e "\033[31mFinished.\033[0m"
else
  echo -e "\033[31mFaild\033[0m"
fi
}
echo "n
e
1


n
l

+3G
n
l

+5G
n
l

+7G
t
5
8e
t
6
8e
t
7
8e
w" | fdisk /dev/sdb &> /dev/null

RETVAL
partprobe &> /dev/null
RETVAL

3. 创建3个分区的PV,结束后查看PV的详细信息,扫描所有系统中的PV;

[root@MyLinux ~]# pvcreate /dev/sdb{5,6,7}       // 创建pv
  Physical volume "/dev/sdb5" successfully created
  Physical volume "/dev/sdb6" successfully created
  Physical volume "/dev/sdb7" successfully created
[root@MyLinux ~]# pvs   // 显示pv信息,pvdisplay更详尽,不做介绍
  PV         VG         Fmt  Attr PSize   PFree 
  /dev/sda3  vg_mylinux lvm2 a--u 117.80g 94.80g
  /dev/sdb5             lvm2 ----   3.01g  3.01g
  /dev/sdb6             lvm2 ----   5.01g  5.01g
  /dev/sdb7             lvm2 ----   7.01g  7.01g
[root@MyLinux ~]# pvscan        // 扫描pv
  PV /dev/sda3   VG vg_mylinux      lvm2 [117.80 GiB / 94.80 GiB free]
  PV /dev/sdb5                      lvm2 [3.01 GiB]
  PV /dev/sdb6                      lvm2 [5.01 GiB]
  PV /dev/sdb7                      lvm2 [7.01 GiB]
  Total: 4 [132.83 GiB] / in use: 1 [117.80 GiB] / in no VG: 3 [15.03 GiB]

4. 创建容量为8G的VG,默认PE大小是8M,查看VG的详细信息;

[root@MyLinux ~]# vgcreate -s 8M myvg /dev/sdb{5,6}
  Volume group "myvg" successfully created
[root@MyLinux ~]# vgs
  VG         #PV #LV #SN Attr   VSize   VFree 
  myvg         2   0   0 wz--n-   8.02g  8.02g
  vg_mylinux   1   2   0 wz--n- 117.80g 94.80g

5. 将VG的容量调整到15G,然后在削减到10G;

[root@MyLinux ~]# vgextend myvg /dev/sdb7      // 扩展道15G
  Volume group "myvg" successfully extended
[root@MyLinux ~]# vgs
  VG         #PV #LV #SN Attr   VSize   VFree 
  myvg         3   0   0 wz--n-  15.02g 15.02g
  vg_mylinux   1   2   0 wz--n- 117.80g 94.80g
[root@MyLinux ~]# vgreduce myvg /dev/sdb6      // 削减到10G
  Removed "/dev/sdb6" from volume group "myvg"
[root@MyLinux ~]# vgs
  VG         #PV #LV #SN Attr   VSize   VFree 
  myvg         2   0   0 wz--n-  10.02g 10.02g
  vg_mylinux   1   2   0 wz--n- 117.80g 94.80g

6. 创建一个2G的LV,查看LV的详细信息;

[root@MyLinux ~]# lvcreate -n testlv -L 2G myvg
  Logical volume "testlv" created.
[root@MyLinux ~]# lvs
  LV       VG         Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  testlv   myvg       -wi-a-----  2.00g                                                    
  LogVol00 vg_mylinux -wi-ao---- 20.00g                                                    
  testlv   vg_mylinux -wi-ao----  3.00g              

7. 格式化以上的LV,配置/etc/fstab,将其开机挂载到/mnt目录,且支持acl功能;

[root@MyLinux ~]# mkfs.ext4 /dev/mapper/     // 格式化
control              myvg-testlv          vg_mylinux-LogVol00  vg_mylinux-testlv    
[root@MyLinux ~]# mkfs.ext4 /dev/mapper/myvg-testlv 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
。。。 。。。
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@MyLinux ~]# vim /etc/fstab    // 编辑fstab,添加一行
/dev/mapper/myvg-testlv /mnt                    ext4    defaults,acl    0 0
[root@MyLinux ~]# mount -a    // 挂载并查看
[root@MyLinux ~]# ls /mnt
lost+found

8. 向/mnt目录复制/etc/inittab, /etc/issue两个文件,查看文件的行数并记录;

[root@MyLinux ~]# cp /etc/inittab /mnt
[root@MyLinux ~]# cp /etc/issue /mnt/
[root@MyLinux ~]# ls /mnt/
inittab  issue  lost+found
[root@MyLinux ~]# wc -l /mnt/inittab
26 /mnt/inittab

9. 将LV容量扩展道3G,且不影响里面的文件;

[root@MyLinux ~]# umount /mnt     第一步:卸载
[root@MyLinux ~]# e2fsck -f /dev/mapper/myvg-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/mapper/myvg-testlv: 13/131072 files (0.0% non-contiguous), 25390/524288 blocks

[root@MyLinux ~]# lvextend -L 3G /dev/mapper/myvg-testlv    第三步:扩展物理边界
  Size of logical volume myvg/testlv changed from 2.00 GiB (256 extents) to 3.00 GiB (384 extents).
  Logical volume testlv successfully resized.
  
[root@MyLinux ~]# resize2fs -p /dev/mapper/myvg-testlv      第四步:扩展逻辑边界,-p是扩展道物理边界的大小
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/myvg-testlv to 786432 (4k) blocks.
Begin pass 1 (max = 8)
Extending the inode table     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/myvg-testlv is now 786432 blocks long.

[root@MyLinux ~]# lvs      // 已经到了3G
  LV       VG         Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  testlv   myvg       -wi-a-----  3.00g                                                    
  LogVol00 vg_mylinux -wi-ao---- 20.00g                                                    
  testlv   vg_mylinux -wi-ao----  3.00g   
  
[root@MyLinux ~]# mount -a      // 挂载以后看到文件没有损坏
[root@MyLinux ~]# wc -l /mnt/inittab 
26 /mnt/inittab

10. 将LV的容量缩减为1G(因为里面的文件很少,1G够用),且不影响里面的文件;

[root@MyLinux ~]# umount /mnt           // 第一步:卸载lv
[root@MyLinux ~]# e2fsck -f /dev/mapper/myvg-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/mapper/myvg-testlv: 13/196608 files (0.0% non-contiguous), 29502/786432 blocks

[root@MyLinux ~]# resize2fs /dev/mapper/myvg-testlv 1G         // 第三步:缩减逻辑边界
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/myvg-testlv to 262144 (4k) blocks.
The filesystem on /dev/mapper/myvg-testlv is now 262144 blocks long.

[root@MyLinux ~]# lvreduce -L 1G /dev/mapper/myvg-testlv        // 第四步:缩减物理边界
  WARNING: Reducing active logical volume to 1.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/testlv? [y/n]: y              // 提示可能损失数据,键入y回车
  Size of logical volume myvg/testlv changed from 3.00 GiB (384 extents) to 1.00 GiB (128 extents).
  Logical volume testlv successfully resized.
[root@MyLinux ~]# mount -a                 //第五步:挂载后查看文件没有损坏。
[root@MyLinux ~]# wc -l /mnt/inittab 
26 /mnt/inittab

 

 

 

转载请注明:liutianfeng.com » 逻辑卷的常用操作-lv,vg,lv(创建、增加、缩减、无损弹性容量调整)

喜欢 (2)

发表回复