LVM 逻辑卷动态扩容教程
实践操作已经验证无问题可以正常使用
第一步:
[root@lvs2 terry]# cat /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
Type: CD-ROM ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
解释一下 scsi add-single-device a b c d 这个指令中的参数: # 相反 scsi remove-single-device a b c d 是用来移除设备的
a ------- Host 是硬盘所在的SCSI控制器的编号,这里只有2个控制器,所以为2(第一个为CD-ROW)
b ------- Channel 硬盘所在SCSI通道的编号,这里是单通道,为0
c ------- Id 硬盘的SCSI ID号,就是插入的硬盘插槽编号,
这里我最开始安装虚拟Linux系统的时候虚拟了一个SCSI硬盘(SCSI ID为0),
现在再虚拟一块出来的话,SCSI ID为1
d ------- Lun ,硬盘的lun号[logical unit number]即逻辑单元号,指的是一个用于SCSI总线的唯一的识别号,
总线使它能区别其他八个设备(它们每个都是一个逻辑单元)。
*]
这时再 cat /proc/scsi/scsi 就会发现新的scsi的相关信息已经加载到内核中去了。
echo “scsi add-single-device 2 0 1 0” > /proc/scsi/scsi
第二步
fdisk /dev/sdb
Command (m for help): n # n是新建一个分区
Command action
e extended # e代表扩展分区
p primary partition (1-4) # p代表主分区
p # 这里我们选择p,每个分区表最多可以有4个主分区
Partition number (1-4): 3 # 可以选择1-4,这里我选3
First cylinder (1-522, default 1): # 选择首个柱面,默认的就好
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-522, default 522): # 这里如果选择默认值的话就会使用整块硬盘,你可以自定义大小如 +500M
Using default value 522
Command (m for help): p # p代表打印当前的分区表
Disk /dev/sdb: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb3 1 522 4192933+ 83 Linux # 这里的文件系统为Linux,我想要Linux LVM的文件系统,那么我需要转换
Command (m for help): t # t代表转换文件系统
Selected partition 3 # 当前分区表只有一个分区,默认选择了分区3
Hex code (type L to list codes): 8e # 8e代表LVM的文件系统标志,你也可以输入 L 了解具体更多文件系统标志
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): w # 这里一定要记得保存,否则前功尽弃
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@server01 ~]#
本篇暂时讲到这里,先歇歇手。磁盘已经格式化好了,下篇我们将一起来对原有的文件系统进行扩容。
第三步 在线扩容
[1] 使用pvcreate 把物理设备[/dev/sdb3]转换成物理卷
pvcreate /dev/sdb3
[2] 使用vgextend 把pvcreate产生的物理卷添加到特定的逻辑卷组中
先来查看系统中原有的逻辑卷组:
— Volume group —
VG Name vg_lvs2
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 57.51 GiB
PE Size 4.00 MiB
Total PE 14722
Alloc PE / Size 14722 / 57.51 GiB
Free PE / Size 0 / 0
VG UUID JnXfQU-dj66-ktBl-B3tL-9Ie1-2J1o-yNpOC0
[root@server01 ~]# vgextend /dev/mapper/vg_lvs2 /dev/sdb3
Volume group “vg_lvs2” successfully extended
[3]
[root@lvs2 terry]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_lvs2-lv_root
48G 12G 35G 25% /
tmpfs 3.8G 0 3.8G 0% /dev/shm
/dev/sda1 477M 97M 355M 22% /boot
/dev/mapper/vg_lvs2-lv_home
4.6G 810M 3.6G 19% /home
使用lvextend把逻辑卷组中的空闲空间扩展到 /home 分区所在的逻辑卷(vg_lvs2-lv_home)中:
[这里我添加了50000M]
[root@lvs2 terry]# lvextend -L +51200M /dev/mapper/vg_lvs2-lv_home
Insufficient free space: 12800 extents needed, but only 12799 available
[root@lvs2 terry]# lvextend -L +50000M /dev/mapper/vg_lvs2-lv_home
Size of logical volume vg_lvs2/lv_home changed from 4.77 GiB (1220 extents) to 53.59 GiB (13720 extents).
Logical volume lv_home successfully resized
[root@lvs2 terry]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_lvs2-lv_root
48G 12G 35G 25% /
tmpfs 3.8G 0 3.8G 0% /dev/shm
/dev/sda1 477M 97M 355M 22% /boot
/dev/mapper/vg_lvs2-lv_home
4.6G 810M 3.6G 19% /home
没有任何变化!为什么呢?之前说过了,还有第四步——调整文件系统大小
[4] 使用resize2fs调整文件系统的大小:
[root@lvs2 terry]# resize2fs /dev/vg_lvs2/lv_home
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_lvs2/lv_home is mounted on /home; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 4
Performing an on-line resize of /dev/vg_lvs2/lv_home to 14049280 (4k) blocks.
The filesystem on /dev/vg_lvs2/lv_home is now 14049280 blocks long.