创建逻辑卷
以下的一组命令执行创建逻辑卷所需的步骤:
• 运行 vgscan 命令( 在集群中所有的 RAC 节点上运行 ),以创建 /etc/lvmtab 文件。
• 使用 pvcreate 创建由逻辑卷管理器 (LVM) 所使用的物理卷。
• 使用 vgcreate ,为驱动器或者为您希望用于 RAW 设备的分区创建一个卷组。在这里我们为整个驱动器创建卷。在我们的示例中(如下所示),该命令将允许创建 256 个逻辑分区和 256 个物理分区,范围大小为 128K 。
• 使用 lvcreate 在卷组中创建逻辑卷。
注意: 上文讲到,我需要在所有节点上运行 vgscan 命令,以便该命令能够创建 /etc/lvmtab 文件。应该在运行下列命令之前执行该命令。
将以下命令放在一个 schell 脚本中,更改执行权限,然后以 “root”UNIX 用户 id 来运行该脚本:
vgscan
pvcreate -d /dev/sda
vgcreate -l 256 -p 256 -s 128k /dev/pv1 /dev/sda
lvcreate -L 5m /dev/pv1
lvcreate -L 100m /dev/pv1
lvcreate -L 10m /dev/pv1
lvcreate -L 200m /dev/pv1
lvcreate -L 200m /dev/pv1
lvcreate -L 200m /dev/pv1
lvcreate -L 55m /dev/pv1
lvcreate -L 25m /dev/pv1
lvcreate -L 255m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 55m /dev/pv1
lvcreate -L 805m /dev/pv1
lvcreate -L 255m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 405m /dev/pv1
lvcreate -L 405m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 155m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 105m /dev/pv1
lvcreate -L 105m /dev/pv1
使用该脚本(如上所示)将会创建 /dev/pv1/lvol1 - /dev/pv1/lvol23 。
我通常使用 lvscan 命令来检查逻辑卷的状态:
[root@linux2 root]# lvscan
lvscan -- ACTIVE "/dev/pv1/lvol1" [5 MB]
lvscan -- ACTIVE "/dev/pv1/lvol2" [100 MB]
lvscan -- ACTIVE "/dev/pv1/lvol3" [10 MB]
lvscan -- ACTIVE "/dev/pv1/lvol4" [200 MB]
lvscan -- ACTIVE "/dev/pv1/lvol5" [200 MB]
lvscan -- ACTIVE "/dev/pv1/lvol6" [200 MB]
lvscan -- ACTIVE "/dev/pv1/lvol7" [55 MB]
lvscan -- ACTIVE "/dev/pv1/lvol8" [25 MB]
lvscan -- ACTIVE "/dev/pv1/lvol9" [255 MB]
lvscan -- ACTIVE "/dev/pv1/lvol10" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol11" [55 MB]
lvscan -- ACTIVE "/dev/pv1/lvol12" [805 MB]
lvscan -- ACTIVE "/dev/pv1/lvol13" [255 MB]
lvscan -- ACTIVE "/dev/pv1/lvol14" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol15" [405 MB]
lvscan -- ACTIVE "/dev/pv1/lvol16" [405 MB]
lvscan -- ACTIVE "/dev/pv1/lvol17" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol18" [155 MB]
lvscan -- ACTIVE "/dev/pv1/lvol19" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol20" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol21" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol22" [105 MB]
lvscan -- ACTIVE "/dev/pv1/lvol23" [105 MB]
lvscan -- 23 logical volumes with 3.88 GB total in 1 volume group
lvscan -- 23 active logical volumes
重新启动 RAC 集群中的所有节点
在完成分区的创建之后,建议您重新启动所有 RAC 节点上的内核,以确保所有的新分区被所有 RAC 节点上的内核所识别:
1.添加逻辑卷
当卷组创建后,可以使用lvcreate命令在卷组上创建逻辑卷。例如要在卷组vg_data上创建一个1000MB的逻辑卷lv_data1,其命令如下所示。
# lvcreate -L 1000m -n lv_data1 vg_data
Logical volume "lv_data1" created
除了KB、MB和GB这些常规单位以外,lvcreate命令还可以使用PE数作为单位。由vgdisplay可以看到卷组vg_data的PE大小为4MB,如果要创建一个大小为1000MB的逻辑卷,则需要250个PE,命令如下所示。
# lvcreate -l 250 -n lv_data2 vg_data
Logical volume "lv_data2" created
卷组和逻辑卷创建后,会在/dev目录下创建一个以VG名称命名的目录,在目录下会创建以LV名称命名的设备文件,如下所示。
#ll /dev/vg_data
total 0
lrwxrwxrwx 1 root root 28 Aug 24 22:22 lv_data1 -> /dev/mapper/vg_ data-lv_data1
lrwxrwxrwx 1 root root 28 Aug 24 22:21 lv_data2 -> /dev/mapper/vg_ data-lv_data2
2.更改逻辑卷的大小
使用lvresize命令可以更改已有逻辑卷的大小。一般情况下不建议减少逻辑卷的空间,因为这样可能会导致逻辑卷上的文件系统中的数据丢失,所以除非用户已经确定被减少空间中的数据不再需要或者已经把重要数据备份出来,否则不要减少逻辑卷的空间以免造成不可挽回的损失。如果要把逻辑卷lv_data1的大小增加为1500MB,可以使用下面的命令。
# lvresize -L 1500m /dev/vg_data/lv_data1
Extending logical volume lv_data1 to 1.46 GB
Logical volume lv_data1 successfully resized
3.查看逻辑卷的信息
使用lvdisplay命令可以查看指定逻辑卷的信息,例如要查看逻辑卷lv_data1的信息,命令和运行结果如下所示。
# lvdisplay /dev/vg_data/lv_data1
--- Logical volume ---
LV Name /dev/vg_data/lv_data1 //逻辑卷名称
VG Name vg_data //逻辑卷所属的卷组
LV UUID 3CrIH1-rZr6-UkNZ-1Z5n-gHw2-SM5T-by5fKg
LV Write Access read/write
LV Status available
# open 0
LV Size 1.46 GB //逻辑卷的大小
Current LE 375 //逻辑卷的逻辑块数
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
可以看到,逻辑卷/dev/vg_data/lv_data1所属的卷组为vg_data,访问许可为可读写,卷组状态为可用,逻辑卷大小为1.46GB,总的逻辑块数为375。
4.删除逻辑卷
使用lvremove命令可以删除指定的逻辑卷,删除前系统会提示用户确认。例如要删除逻辑卷lv_data2,其命令和运行结果如下所示。
# lvremove /dev/vg_data/lv_data2
Do you really want to remove active logical volume "lv_data2"? [y/n]: y
Logical volume "lv_data2" successfully removed
删除后,逻辑卷上的所有数据均会被清除。