Linux服務器由於應用變更或需求的緣故,有可能出現分區空間不足的情況,此時往往需要進行擴容(要增加分區的空間),而采用LVM的好處就是可以在不需停機的情況下可以方便地調整各個分區大小。如下所示,分區/u05由於備份集保留的時間調整,RMAN備份時出現空間不足的情況,如下所示,
[root@getlnx01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
97G 37G 55G 41% /
/dev/mapper/VolGroup01-LogVol00
79G 33G 43G 44% /u01
/dev/mapper/VolGroup02-LogVol00
197G 168G 19G 90% /u02
/dev/mapper/VolGroup03-LogVol00
197G 127G 60G 68% /u03
/dev/mapper/VolGroup04-LogVol00
138G 126G 5.6G 96% /u04
/dev/mapper/VolGroup05-LogVol00
178G 104G 65G 62% /u05
/dev/sda1 99M 23M 71M 25% /boot
tmpfs 12G 0 12G 0% /dev/shm
[root@getlnx01 ~]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "VolGroup05" using metadata type lvm2
Found volume group "VolGroup04" using metadata type lvm2
Found volume group "VolGroup03" using metadata type lvm2
Found volume group "VolGroup02" using metadata type lvm2
Found volume group "VolGroup01" using metadata type lvm2
Found volume group "VolGroup00" using metadata type lvm2
[root@getlnx01 ~]#
我在添加了一塊虛擬磁盤后(虛擬機),此時使用fdisk -l查不到剛剛添加的新磁盤,此時需要運行命令echo "- - -" > /sys/class/scsi_host/host0/scan重新掃描該接口下的SCSI磁盤設備。
關於該命令它是通過/sys下的屬性設置運行SCSI掃描。echo "- - -" > scan "- - -"代表channel,target和LUN編號。以上命令會導致hba4下所有channel,target以及可見LUN被掃描。
[root@getlnx01 ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@getlnx01 ~]# fdisk -l
Disk /dev/sda: 55.8 GB, 55834574848 bytes
255 heads, 63 sectors/track, 6788 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 6788 54420187+ 8e Linux LVM
Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 10443 83883366 5 Extended
/dev/sdb5 1 10443 83883334+ 83 Linux
Disk /dev/sdd: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 26108 209712478+ 5 Extended
/dev/sdd5 1 26108 209712447 83 Linux
Disk /dev/sdc: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 26108 209712478+ 5 Extended
/dev/sdc5 1 26108 209712447 83 Linux
Disk /dev/sdf: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdf1 1 7832 62910508+ 5 Extended
/dev/sdf5 1 7832 62910477 83 Linux
Disk /dev/sde: 150.3 GB, 150323855360 bytes
255 heads, 63 sectors/track, 18275 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sde1 1 18275 146793906 5 Extended
/dev/sde5 1 18275 146793874+ 83 Linux
Disk /dev/sdg: 193.2 GB, 193273528320 bytes
255 heads, 63 sectors/track, 23497 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdg1 1 23497 188739621 5 Extended
/dev/sdg5 1 23497 188739589+ 83 Linux
Disk /dev/dm-0: 107.2 GB, 107206410240 bytes
255 heads, 63 sectors/track, 13033 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/dm-1: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/dm-1 doesn't contain a valid partition table
Disk /dev/sdh: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdh doesn't contain a valid partition table
1:格式化分區
格式化磁盤設備/dev/sdh, 下面是采用邏輯擴展分區。關於格式分區時是否一定要修改分區類型為8e(LVM格式),我查了一些資料,這個不是必須的。鳥哥的Linux私房菜里面的原話為:“那個8e的出現會導致system變成Linux LMV! 其實沒有設定為8e也沒有關系,不過某些LMV的偵測指令可能會偵測不到該partition就是了”
[root@getlnx01 ~]# fdisk /dev/sdh
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 10443.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-10443, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-10443, default 10443):
Using default value 10443
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@getlnx01 ~]# fdisk /dev/sdh
The number of cylinders for this disk is set to 10443.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/sdh: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdh1 1 10443 83883366 5 Extended
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (1-10443, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-10443, default 10443):
Using default value 10443
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@getlnx01 ~]#
2:新建物理卷(PV)
[root@getlnx01 ~]# pvcreate /dev/sdh5
Physical volume "/dev/sdh5" successfully created
[root@getlnx01 ~]# pvdisplay /dev/sdh5
"/dev/sdh5" is a new physical volume of "80.00 GB"
--- NEW Physical volume ---
PV Name /dev/sdh5
VG Name
PV Size 80.00 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID LgKUuj-UddY-AHHO-ewqX-1iF1-6HYN-N5EITM
3:擴展卷組(VG)
首先查看VG的詳細信息,然后擴展VG
[root@getlnx01 ~]# vgdisplay VolGroup05
--- Volume group ---
VG Name VolGroup05
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 179.97 GB
PE Size 32.00 MB
Total PE 5759
Alloc PE / Size 5759 / 179.97 GB
Free PE / Size 0 / 0
VG UUID UNFxZH-lAGM-vqF3-jtNK-yuKT-enUX-WwL7FQ
[root@getlnx01 ~]# vgextend VolGroup05 /dev/sdh5
Volume group "VolGroup05" successfully extended
[root@getlnx01 ~]# vgdisplay VolGroup05
--- Volume group ---
VG Name VolGroup05
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 259.94 GB
PE Size 32.00 MB
Total PE 8318
Alloc PE / Size 5759 / 179.97 GB
Free PE / Size 2559 / 79.97 GB
VG UUID UNFxZH-lAGM-vqF3-jtNK-yuKT-enUX-WwL7FQ
[root@getlnx01 ~]#
4:處理文件系統
VG擴展后,/u05分區還不能實時增加空間,還需要使用resize2fs –p命令激活新增加的空間
[root@getlnx01 ~]# resize2fs -p /dev/VolGroup05/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup05/LogVol00 is mounted on /u05; on-line resizing required
Performing an on-line resize of /dev/VolGroup05/LogVol00 to 68141056 (4k) blocks.
The filesystem on /dev/VolGroup05/LogVol00 is now 68141056 blocks long.
[root@getlnx01 ~]#
[root@getlnx01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
97G 37G 55G 41% /
/dev/mapper/VolGroup01-LogVol00
79G 33G 43G 44% /u01
/dev/mapper/VolGroup02-LogVol00
197G 168G 19G 90% /u02
/dev/mapper/VolGroup03-LogVol00
197G 127G 60G 68% /u03
/dev/mapper/VolGroup04-LogVol00
138G 126G 5.6G 96% /u04
/dev/mapper/VolGroup05-LogVol00
256G 104G 140G 43% /u05
/dev/sda1 99M 23M 71M 25% /boot
tmpfs 12G 0 12G 0% /dev/shm
[root@getlnx01 ~]#