Linux基础教程学习笔记25——逻辑卷LVM管理

iphilo 2015-03-29

Linux基础教程学习笔记25——逻辑卷LVM管理

1、创建和管理卷组
[root@linuxidc ~]# vgcreate vg0 /dev/sdb1 /dev/sdb2
  Volume group "vg0" successfully created
[root@linuxidc ~]# pvscan 
  PV /dev/sda2  VG rhel  lvm2 [19.51 GiB / 0    free]
  PV /dev/sdb1  VG vg0    lvm2 [96.00 MiB / 96.00 MiB free]
  PV /dev/sdb2  VG vg0    lvm2 [96.00 MiB / 96.00 MiB free]
  Total: 3 [19.70 GiB] / in use: 3 [19.70 GiB] / in no VG: 0 [0  ]

[root@linuxidc ~]# vgs
  VG  #PV #LV #SN Attr  VSize  VFree 
  rhel  1  2  0 wz--n-  19.51g      0 
  vg0    3  0  0 wz--n- 288.00m 288.00m

    扩展卷组:
[root@linuxidc ~]# vgextend vg0 /dev/sdb3
  Volume group "vg0" successfully extended
[root@linuxidc ~]# pvscan 
  PV /dev/sda2  VG rhel  lvm2 [19.51 GiB / 0    free]
  PV /dev/sdb1  VG vg0    lvm2 [96.00 MiB / 96.00 MiB free]
  PV /dev/sdb2  VG vg0    lvm2 [96.00 MiB / 96.00 MiB free]
  PV /dev/sdb3  VG vg0    lvm2 [96.00 MiB / 96.00 MiB free]
  Total: 4 [19.79 GiB] / in use: 4 [19.79 GiB] / in no VG: 0 [0  ]
[root@linuxidc ~]# vgs
  VG  #PV #LV #SN Attr  VSize  VFree 
  rhel  1  2  0 wz--n-  19.51g      0 
  vg0    3  0  0 wz--n- 288.00m 288.00m

显示卷组的详细信息:

[root@linuxidc ~]# vgdisplay vg0
  --- Volume group ---
  VG Name              vg0
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  2
  VG Access            read/write
  VG Status            resizable
  MAX LV                0
  Cur LV                0
  Open LV              0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size              288.00 MiB
  PE Size              4.00 MiB
  Total PE              72
  Alloc PE / Size      0 / 0   
  Free  PE / Size      72 / 288.00 MiB
  VG UUID              djqWJB-ppYY-RMkR-8pdd-Cc2D-mAt2-ab7ioS

    创建卷组的时候指定PE size大小:
[root@linuxidc ~]# vgcreate vg0 -s 8 /dev/sdb1 /dev/sdb2

    删除卷组:
[root@linuxidc ~]# vgremove vg0

二、创建和管理逻辑卷

创建逻辑卷;

 [root@linuxidc ~]# lvcreate -L 96M -n lv0 vg0
  Logical volume "lv0" created
[root@linuxidc ~]# lvscan 
  ACTIVE            '/dev/rhel/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/rhel/root' [17.51 GiB] inherit
  ACTIVE            '/dev/vg0/lv0' [96.00 MiB] inherit

[root@linuxidc ~]# lvcreate -l 10%vg  -n lv1 vg0

[root@linuxidc ~]# lvcreate -l 10%free  -n lv2 vg0

  删除逻辑卷:
[root@linuxidc ~]# lvremove /dev/vg0/lv2 -f
  Logical volume "lv2" successfully removed

        创建文件系统:
[root@linuxidc ~]# mkfs.xfs /dev/vg0/lv1

挂载文件系统:

[root@linuxidc ~]# mount /dev/vg0/lv1 /aa

[root@linuxidc ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-lv1    13M  880K  12M  7% /aa

    拓展逻辑卷:
[root@linuxidc ~]# lvextend -L +16M /dev/vg0/lv1

[root@linuxidc ~]# xfs_growfs /aa/

[root@linuxidc ~]# df -h
/dev/mapper/vg0-lv1    29M  912K  28M  4% /aa

缩小逻辑卷:

先缩小文件系统,后缩小逻辑卷:xfs文件系统是职能增大,不能减小

实例:扩大和缩小ext4的文件系统 

扩大LV:

[root@linuxidc ~]# mkfs.ext4 /dev/vg0/lv1

[root@linuxidc ~]# lvextend -L +16M /dev/vg0/lv1

[root@linuxidc ~]# resize2fs /dev/vg0/lv1

[root@linuxidc ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg0-lv1  ext4      43M  1.1M  39M  3% /aa

        缩小LV:

    步骤:

    1、先卸载文件系统:

    2、fsck对文件系统进行体检:

    3、缩小文件系统;

    4、缩小逻辑卷;

   
[root@linuxidc ~]# umount /aa/
[root@linuxidc ~]# fsck /dev/vg0/lv1 -f

[root@linuxidc ~]# resize2fs /dev/vg0/lv1 29M

[root@linuxidc ~]# lvreduce -L -24M /dev/vg0/lv1

[root@linuxidc ~]# mount /dev/vg0/lv1 /aa/

给逻辑卷创建快照,快照的size必须为PE的整数倍:

[root@linuxidc ~]# lvcreate -L 16M -n lv2 -s /dev/vg0/lv1
     
[root@linuxidc ~]# lvscan 
  ACTIVE  Original '/dev/vg0/lv1' [24.00 MiB] inherit
  ACTIVE  Snapshot '/dev/vg0/lv2' [16.00 MiB] inherit

    创建的快照包含了源卷的文件系统,不需要再格式化,快照类似于一个软链接,快照的大小,意思允许在快照里面创建和修改的文件大小
[root@linuxidc /]# mkdir bb
[root@linuxidc /]# mount /dev/vg0/lv2 /bb

[root@linuxidc /]# df -hT
Filesystem            Type      Size  Used Avail Use% Mounted on
/dev/mapper/vg0-lv1  ext4      23M  396K  21M  2% /aa
/dev/mapper/vg0-lv2  ext4      23M  396K  21M  2% /bb

    如果源逻辑卷被删除了,可以通过lvconvert命令恢复镜像:
[root@linuxidc /]# lvconvert --merge /dev/vg0/lv2
  Logical volume vg0/lv1 contains a filesystem in use.
  Can't merge over open origin volume.
  Merging of snapshot lv2 will start next activation.

   
二、RAID分为硬RAID和软RAID

    Chunk:512K为一次往磁盘写入的数据量

    Stride:跨步:一个chunk由多少个Block(4K)组成 128
    Stripe:条带:256(一次写入多少个磁盘,如2个磁盘,128*2)

    RAID0:条带化,至少需要2块磁盘,数据分别存储在不同的硬盘,优点是提高读写速度,缺点是没有冗余

    RAID1:镜像化,至少需要2块磁盘,数据有备份,优点是有冗余,缺点是硬盘的存储率较低,1/n(硬盘数量)

    RAID5:  条带化,  至少需要3块硬盘,优点是提高了读的速度,缺点是修改数据慢,数据存储效率为(n-1)/n

    创建Raid5

    先将分区的类型转换为RAID类型:
Number  Start (sector)    End (sector)  Size      Code  Name
  1            2048          206847  100.0 MiB  FD00  Linux RAID
  2          206848          411647  100.0 MiB  FD00  Linux RAID
  3          411648          616447  100.0 MiB  FD00  Linux RAID
  4          616448          821247  100.0 MiB  FD00  Linux RAID
  5          821248        1026047  100.0 MiB  FD00  Linux RAID
  6        1026048        1230847  100.0 MiB  FD00  Linux RAID

    查看当前是否有RAID分区:[
[root@linuxidc ~]# cat /proc/mdstat

    使用命令创建Raid5:

[root@linuxidc ~]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb{1..4}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

    查看Raid的详细信息:
[root@linuxidc ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat Jan 31 19:02:57 2015
    Raid Level : raid5
    Array Size : 203776 (199.03 MiB 208.67 MB)
  Used Dev Size : 101888 (99.52 MiB 104.33 MB)
  Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent
    Update Time : Sat Jan 31 19:03:00 2015
          State : clean 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1
        Layout : left-symmetric
    Chunk Size : 512K

   
      Name : linuxidc.sg.com:0  (local to host linuxidc.sg.com)
          UUID : d5084cc8:b7b1a695:70b73034:183df2bd
        Events : 18
    Number  Major  Minor  RaidDevice State
      0      8      17        0      active sync  /dev/sdb1
      1      8      18        1      active sync  /dev/sdb2
      4      8      19        2      active sync  /dev/sdb3
      3      8      20        -      spare  /dev/sdb4

格式化文件系统:

[root@linuxidc ~]# mkfs.ext4 /dev/md0

[root@linuxidc ~]# mount /dev/md0 /aa

    查看ext4的文件属性:

[root@linuxidc ~]# tune2fs -l /dev/md0

    可以通过命令模拟Raid里面的磁盘出现故障:
[root@linuxidc ~]# mdadm /dev/md0 -f /dev/sdb4

    关闭与启动Raid

    首先卸载和关闭:
[root@linuxidc ~]# umount /aa
[root@linuxidc ~]# mdadm -S /dev/md0 
mdadm: stopped /dev/md0

[root@linuxidc ~]# mdadm -As

    Raid分区删除后,要对每个磁盘的superblock清零:

更多LLVM的资讯

LLVM 的详细介绍:请点这里
LLVM 的下载地址:请点这里

相关推荐