接收到数据转储项目组需求,需要将虚拟机的硬盘扩容,满足后续运维需求; 操作系统:CENTOS 6

命令清单

  • lsblk:查看分区信息
  • df -h查看文件系统及空间使用信息
  • fdisk [-l][/dev/sda]查看,修改系统分区信息,创建分区
  • pvdisplsy查看LVM中PV信息
  • vgdisplay查看LVM中VG信息
  • lvdisplay查看LVM中LV信息
  • pvcreate [/dev/sda3]基于现有分区,创建PV
  • vgextend [vg_bigdata] [/dev/sda3]扩充VG
  • lvextend -L +149G /dev/vg_bigdata/lv_home扩充LV
  • resize2fs /dev/vg_bigdata/lv_home 增大或者收缩未加载的“ext2/ext3”文件系统的大小。如果文件系统是处于mount状态下,那么它只能做到扩容

操作步骤

  1. 在虚拟机控制台,扩展现有硬盘大小,步骤如下图所示
    虚拟机扩展硬盘大小 - 图1
  2. ssh登录进目标系统ssh root@172.16.0.250
  3. 查看系统分析信息及文件系统信息,主要关注LV名称与挂载点

    1. [root@bigdata ~]# lsblk
    2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    3. sda 8:0 0 650G 0 disk
    4. ©À©¤sda1 8:1 0 500M 0 part /boot
    5. ©¸©¤sda2 8:2 0 499.5G 0 part
    6. ©À©¤vg_bigdata-lv_root (dm-0) 253:0 0 50G 0 lvm /
    7. ©À©¤vg_bigdata-lv_swap (dm-1) 253:1 0 7.9G 0 lvm [SWAP]
    8. ©¸©¤vg_bigdata-lv_home (dm-2) 253:2 0 441.7G 0 lvm /home
    9. sr0 11:0 1 1024M 0 rom
    10. [root@bigdata ~]# df -h
    11. Filesystem Size Used Avail Use% Mounted on
    12. /dev/mapper/vg_bigdata-lv_root
    13. 50G 2.5G 45G 6% /
    14. tmpfs 7.8G 0 7.8G 0% /dev/shm
    15. /dev/sda1 477M 40M 412M 9% /boot
    16. /dev/mapper/vg_bigdata-lv_home
    17. 435G 6.1G 407G 2% /home

    lsblk可以看到硬盘已经扩充了,需要将扩充的150G的空间加到vg_bigdata-lv_home中

  4. 首先查看当前分区信息,添加磁盘分区

    1. [root@bigdata ~]# fdisk -l
    2. Disk /dev/sda: 697.9 GB, 697932185600 bytes
    3. 255 heads, 63 sectors/track, 84852 cylinders
    4. Units = cylinders of 16065 * 512 = 8225280 bytes
    5. Sector size (logical/physical): 512 bytes / 512 bytes
    6. I/O size (minimum/optimal): 512 bytes / 512 bytes
    7. Disk identifier: 0x00014553
    8. Device Boot Start End Blocks Id System
    9. /dev/sda1 * 1 64 512000 83 Linux
    10. Partition 1 does not end on cylinder boundary.
    11. /dev/sda2 64 65271 523774976 8e Linux LVM
    12. Disk /dev/mapper/vg_bigdata-lv_root: 53.7 GB, 53687091200 bytes
    13. 255 heads, 63 sectors/track, 6527 cylinders
    14. Units = cylinders of 16065 * 512 = 8225280 bytes
    15. Sector size (logical/physical): 512 bytes / 512 bytes
    16. I/O size (minimum/optimal): 512 bytes / 512 bytes
    17. Disk identifier: 0x00000000
    18. Disk /dev/mapper/vg_bigdata-lv_swap: 8438 MB, 8438939648 bytes
    19. 255 heads, 63 sectors/track, 1025 cylinders
    20. Units = cylinders of 16065 * 512 = 8225280 bytes
    21. Sector size (logical/physical): 512 bytes / 512 bytes
    22. I/O size (minimum/optimal): 512 bytes / 512 bytes
    23. Disk identifier: 0x00000000
    24. Disk /dev/mapper/vg_bigdata-lv_home: 474.2 GB, 474216398848 bytes
    25. 255 heads, 63 sectors/track, 57653 cylinders
    26. Units = cylinders of 16065 * 512 = 8225280 bytes
    27. Sector size (logical/physical): 512 bytes / 512 bytes
    28. I/O size (minimum/optimal): 512 bytes / 512 bytes
    29. Disk identifier: 0x00000000
    30. [root@bigdata ~]# fdisk /dev/sda
    31. WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
    32. switch off the mode (command 'c') and change display units to
    33. sectors (command 'u').
    34. Command (m for help): m
    35. Command action
    36. a toggle a bootable flag
    37. b edit bsd disklabel
    38. c toggle the dos compatibility flag
    39. d delete a partition
    40. l list known partition types
    41. m print this menu
    42. n add a new partition
    43. o create a new empty DOS partition table
    44. p print the partition table
    45. q quit without saving changes
    46. s create a new empty Sun disklabel
    47. t change a partition's system id
    48. u change display/entry units
    49. v verify the partition table
    50. w write table to disk and exit
    51. x extra functionality (experts only)
    52. Command (m for help): n
    53. Command action
    54. e extended
    55. p primary partition (1-4)
    56. p
    57. Partition number (1-4): 2
    58. Partition 2 is already defined. Delete it before re-adding it.
    59. Command (m for help): n
    60. Command action
    61. e extended
    62. p primary partition (1-4)
    63. p
    64. Partition number (1-4): 3
    65. First cylinder (65271-84852, default 65271):
    66. Using default value 65271
    67. Last cylinder, +cylinders or +size{K,M,G} (65271-84852, default 84852):
    68. Using default value 84852
    69. Command (m for help): m
    70. Command action
    71. a toggle a bootable flag
    72. b edit bsd disklabel
    73. c toggle the dos compatibility flag
    74. d delete a partition
    75. l list known partition types
    76. m print this menu
    77. n add a new partition
    78. o create a new empty DOS partition table
    79. p print the partition table
    80. q quit without saving changes
    81. s create a new empty Sun disklabel
    82. t change a partition's system id
    83. u change display/entry units
    84. v verify the partition table
    85. w write table to disk and exit
    86. x extra functionality (experts only)
    87. Command (m for help): w
    88. The partition table has been altered!
    89. Calling ioctl() to re-read partition table.
    90. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
    91. The kernel still uses the old table. The new table will be used at
    92. the next reboot or after you run partprobe(8) or kpartx(8)
    93. Syncing disks.
    • 此次分区创建为创建了第三个主分区,注意创建过程中各个选项的选择,另外在这个场景下,创建主分区或者扩展分区都是可以的;
    • 创建分区的过程中会涉及到分区大小的选择,这个场景下为全部分配,
      First cylinder (65271-84852, default 65271):
      Using default value 65271
      Last cylinder, +cylinders or +size{K,M,G} (65271-84852, default 84852):
      注意分区大小的指定
    • 分区创建完成后按w保存,重启系统
  5. 创建PV

    1. [root@bigdata ~]# pvcreate /dev/sda3
    2. Physical volume "/dev/sda3" successfully created
  6. 扩展VG

    1. [root@bigdata ~]# vgextend vg_bigdata /dev/sda3
    2. Volume group "vg_bigdata" successfully extended
  7. 扩展LV

    1. [root@bigdata ~]# lvextend -L +149G /dev/vg_bigdata/lv_home
    2. Size of logical volume vg_bigdata/lv_home changed from 441.65 GiB (113062 extents) to 590.65 GiB (151206 extents).
    3. Logical volume lv_home successfully resized.
  8. 扩容文件系统

    1. [root@bigdata ~]# resize2fs /dev/vg_bigdata/lv_home
    2. resize2fs 1.41.12 (17-May-2010)
    3. Filesystem at /dev/vg_bigdata/lv_home is mounted on /home; on-line resizing required
    4. old desc_blocks = 28, new_desc_blocks = 37
    5. Performing an on-line resize of /dev/vg_bigdata/lv_home to 154834944 (4k) blocks.
    6. The filesystem on /dev/vg_bigdata/lv_home is now 154834944 blocks long.
  9. df -h查看扩容后的文件系统信息

    1. [root@bigdata ~]# df -h
    2. Filesystem Size Used Avail Use% Mounted on
    3. /dev/mapper/vg_bigdata-lv_root
    4. 50G 2.5G 45G 6% /
    5. tmpfs 7.8G 0 7.8G 0% /dev/shm
    6. /dev/sda1 477M 40M 412M 9% /boot
    7. /dev/mapper/vg_bigdata-lv_home
    8. 582G 6.1G 546G 2% /home

    知识点说明

  10. LINUX中的LVM管理与AIX中的LVM管理是相通的,均存在PV/VG/LV/文件系统的概念,只是在具体操作上命令不同;

  11. 在AIX中,PV一般对应一块物理硬盘,在LINUX上,本场景对应的是磁盘的一个分区,理论上物理硬盘也是可以的,比如将第一步扩展当前硬盘大小变更为添加一个新的硬盘;
  12. AIX与LINUX,扩容的步骤都是一致的,如果当前VG有空间,则直接扩展文件系统,如果没有空间,则添加硬盘(扩展硬盘),创建PV(linux下先分区),加入VG,扩展LV,扩展文件系统;
  13. AIX下扩展大小要注意mirror的使用,一定要遵守先扩LV再扩文件系统的步骤,如果不按照此步骤操作,可能导致镜像盘的大小分配不平均;

    参考资料

  14. CentOS添加磁盘分区

  15. Centos下磁盘管理—-分区
  16. lvextend 扩展逻辑卷大小
  17. Centos/Linux下调整分区大小(以home和根分区为例)