Linux虚拟机扩展文件系统

我的安装TimesTen和12c的虚拟机文件系统满了,需要扩展文件系统。
然后下面的过程大致是:
1. 扩展物理磁盘
2. 创建磁盘分区
2. 重启
3. 使用磁盘分区创建PV
4. 使用新PV扩展VG
5. 使用新PV扩展文件系统所在的LV
6. 扩展文件系统

以下是文件系统满的信息,可以看到文件系统所在的VG为VolGroup,LV为lv_root

[root@tt12c ~]# df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      22063664  21106848         0 100% /
tmpfs                  2020948        76   2020872   1% /dev/shm
/dev/sda1               487652     65340    392616  15% /boot
.host:/              341867516 322829796  19037720  95% /mnt/hgfs

关机,由于是虚拟机,因此通过VMware Workstation中磁盘的实用工具中的扩展,将24G的硬盘扩展到30G,然后启动。

发现物理磁盘已变为30G

[root@tt12c ~]# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes <- 已经是30G了
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00061f5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM
/dev/sda3            2611        3133     4194302+  83  Linux

Disk /dev/mapper/VolGroup-lv_root: 23.1 GB, 23089643520 bytes
255 heads, 63 sectors/track, 2807 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/VolGroup-lv_swap: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

然后建立新的磁盘分区

[root@tt12c ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Selected partition 4
First cylinder (3134-3916, default 3134): 
Using default value 3134
Last cylinder, +cylinders or +size{K,M,G} (3134-3916, default 3916): 
Using default value 3916

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

新的磁盘分区/dev/sda4建立好了

[root@tt12c ~]# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00061f5d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM
/dev/sda3            2611        3133     4194302+  83  Linux
/dev/sda4            3134        3916     6289447+  83  Linux

Disk /dev/mapper/VolGroup-lv_root: 23.1 GB, 23089643520 bytes
255 heads, 63 sectors/track, 2807 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/VolGroup-lv_swap: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

这时VG还没有多余的PE

[root@tt12c ~]# vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               23.50 GiB
  PE Size               4.00 MiB
  Total PE              6017
  Alloc PE / Size       6017 / 23.50 GiB
  Free  PE / Size       0 / 0   
  VG UUID               sjpb7M-lq3U-h15f-Rzoi-351J-icTS-6mQARK

重启机器, 使用shutdown -r now 。如果不用重启就好了,不过现在还不知道如何做。

使用/dev/sda4创建PV

[root@tt12c ~]# pvcreate /dev/sda4
  Physical volume "/dev/sda4" successfully created

扩展VG后,发现有了多余的PE,后续lvextend可以用到此数字。然后扩展LV,在线扩展文件系统,成功!

[root@tt12c ~]# vgextend /dev/VolGroup /dev/sda4
  Volume group "VolGroup" successfully extended

[root@tt12c ~]# vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               29.50 GiB
  PE Size               4.00 MiB
  Total PE              7552
  Alloc PE / Size       6017 / 23.50 GiB
  Free  PE / Size       1535 / 6.00 GiB
  VG UUID               sjpb7M-lq3U-h15f-Rzoi-351J-icTS-6mQARK

[root@tt12c ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/VolGroup/lv_root
  LV Name                lv_root
  VG Name                VolGroup
  LV UUID                PY5XNv-pu3C-l8DH-bLbn-obly-uYZH-PaoMZW
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2015-06-19 22:28:46 +0800
  LV Status              available
  # open                 1
  LV Size                21.50 GiB
  Current LE             5505
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/VolGroup/lv_swap
  LV Name                lv_swap
  VG Name                VolGroup
  LV UUID                4BmUJs-9AGc-PGd9-dFTM-OD7m-KeUv-CTsRv0
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2015-06-19 22:28:48 +0800
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

[root@tt12c ~]# 

[root@tt12c ~]# lvextend /dev/VolGroup/lv_root /dev/sda4
  Size of logical volume VolGroup/lv_root changed from 21.50 GiB (5505 extents) to 27.50 GiB (7040 extents).
  Logical volume lv_root successfully resized

[root@tt12c ~]# resize2fs /dev/VolGroup/lv_root
resize2fs 1.43-WIP (20-Jun-2013)
Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 2
The filesystem on /dev/VolGroup/lv_root is now 7208960 blocks long.

[root@tt12c ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       27G   21G  5.6G  79% /
tmpfs                 2.0G   80K  2.0G   1% /dev/shm
/dev/sda1             477M   64M  384M  15% /boot
.host:/               327G  308G   19G  95% /mnt/hgfs

这里有一点注意,由于是将新建的分区的所有空间都用以扩展文件系统,因此使用了lvextend /dev/VolGroup/lv_root /dev/sda4.
如果只是给一部分空间用于文件系统,则使用lvextend -l+1535 /dev/VolGroup/lv_root (1535=7040-5505)

参考:
* Logical Volume Manager: How can I extend a Volume Group?
* VMware KB: Extending a logical volume in a virtual machine running Red Hat or Cent OS

你可能感兴趣的:(TimesTen日常操作,In-Memory,Computing,Technology)