前言
最近手头一台运行在 Hyper-V 下面抓数据的服务器 (Ubuntu 16.04) 磁盘空间不够了,之前也没有把数据单独放到一个分区,所以只能想办法把根目录给搞大一点。之前没有处理过这样的问题,网上搜了很多资料,现在把拓展方法记录,分享出来。
建议在操作之前做好备份工作
步骤概览
- 调大物理磁盘
- 确定要操作的磁盘
- 扩展 LVM 逻辑分区所在的物理拓展分区
- 新增 LVM 逻辑分区
- 新分区合并到相应 Volumn Group
- 更新文件系统
调大物理磁盘
虚拟机关机,然后直接在虚拟机管理里面操作。
  	 爱主机评测网,最优惠主机信息推荐,便宜VPS分享,香港CN2
爱主机评测网,最优惠主机信息推荐,便宜VPS分享,香港CN2
现在把磁盘从 100G 调整到了 300G
确定要操作的磁盘
先看下磁盘使用情况,运行命令
|   								1   								2   								3   								4   								5   								6   								7   								8   								9   								10   								11 | root@vm003:~# df -hFilesystem  Size Used Avail Use% Mounted onudev   3.9G 0 3.9G 0% /devtmpfs   798M 8.6M 789M 2% /run/dev/mapper/Ubuntu-root94G 88G 1.9G 98% /tmpfs   3.9G 0 3.9G 0% /dev/shmtmpfs   5.0M 0 5.0M 0% /run/locktmpfs   3.9G 0 3.9G 0% /sys/fs/cgroup/dev/sda1472M 382M 66M 86% /boottmpfs   100K 0 100K 0% /run/lxcfs/controllerstmpfs   798M 0 798M 0% /run/user/0 | 
虽然我们已经把物理磁盘调整到了 300G,但是根目录还是100G的样子,已用 98%
运行命令
|   								1   								2   								3   								4   								5   								6   								7   								8   								9   								10   								11   								12   								13   								14   								15   								16   								17   								18   								19   								20   								21   								22   								23   								24   								25   								26 | root@vm003:~# fdisk -lDisk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/Osize (minimum/optimal): 4096 bytes / 4096 bytesDisklabel type: dosDisk identifier: 0xa88f1366Device Boot Start End Sectors Size Id Type/dev/sda1* 2048 999423 997376 487M 83 Linux/dev/sda21001470 209713151 208711682 99.5G 5 Extended/dev/sda51001472 209713151 208711680 99.5G 8e Linux LVMPartition 2 does not start on physical sector boundary.Disk /dev/mapper/Ubuntu-root: 95.5 GiB, 102563315712 bytes, 200318976 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/Osize (minimum/optimal): 4096 bytes / 4096 bytesDisk /dev/mapper/Ubuntu-swap_1: 4 GiB, 4294967296 bytes, 8388608 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/Osize (minimum/optimal): 4096 bytes / 4096 bytes | 
可以看到 /dev/sda 已经确实被调整到了300GiB,只是系统还没用到。
也知道了我们要操作 /dev/sda
扩大 LVM 逻辑分区所在的物理分区
运行命令
|   								1   								2   								3   								4   								5   								6   								7   								8   								9   								10   								11   								12   								13   								14   								15   								16   								17   								18   								19   								20   								21   								22   								23   								24   								25   								26   								27   								28   								29   								30   								31   								32 | root@vm003:~# parted /dev/sdaGNU Parted 3.2Using /dev/sda(parted) print # 查看分区Model: Msft Virtual Disk (scsi)Disk /dev/sda: 322GBSector size (logical/physical): 512B/4096BPartition Table: msdosDisk Flags:Number Start End Size Type File system Flags 1 1049kB 512MB 511MB primary ext2  boot 2 513MB 107GB 107GB extended 5 513MB 107GB 107GB logical  lvm(parted) resizepart 2 # 调整 sda2 分区大小End [107GB] -0 # 直接充满(parted) print # 再次查看Model: Msft Virtual Disk (scsi)Disk /dev/sda: 322GBSector size (logical/physical): 512B/4096BPartition Table: msdosDisk Flags:Number Start End Size Type File system Flags 1 1049kB 512MB 511MB primary ext2  boot 2 513MB 322GB 322GB extended 5 513MB 107GB 107GB logical  lvm(parted) q # 完成退出Information: You may need to update /etc/fstab. | 
现在我们已经把 /dev/sda2 给拓展出来了
新增 LVM 逻辑分区
运行命令
|   								1   								2   								3   								4   								5   								6   								7   								8   								9   								10   								11   								12   								13   								14   								15   								16   								17   								18   								19   								20   								21   								22   								23   								24   								25   								26   								27   								28   								29   								30   								31   								32   								33   								34   								35   								36   								37   								38   								39   								40   								41   								42   								43   								44   								45   								46   								47   								48   								49   								50   								51   								52   								53   								54   								55   								56   								57   								58   								59   								60   								62   								63   								64   								65   								66   								67   								68   								69   								70   								71   								72   								73   								74   								75   								76 | root@vm003:~# fdisk /dev/sdaWelcome to fdisk(util-linux 2.27.1).Changes will remain inmemory only, untilyou decide to write them.Be careful before using the write command.Command (m forhelp): p # 查看现在的分区情况Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/Osize (minimum/optimal): 4096 bytes / 4096 bytesDisklabel type: dosDisk identifier: 0xa88f1366Device Boot Start End Sectors Size Id Type/dev/sda1* 2048 999423 997376 487M 83 Linux/dev/sda21001470 629145599 628144130 299.5G 5 Extended/dev/sda51001472 209713151 208711680 99.5G 8e Linux LVMPartition 2 does not start on physical sector boundary.Command (m forhelp): n # 新增分区,选择逻辑分区,起止点看情况输入,默认值是填充满整个磁盘All space forprimary partitions is inuse.Adding logical partition 6First sector (209715200-629145599, default 209715200):Last sector, +sectors or +size{K,M,G,T,P} (209715200-629145599, default 629145599):Created a new partition 6 of type'Linux'and of size 200 GiB.Command (m forhelp): p # 查看新增的分区Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/Osize (minimum/optimal): 4096 bytes / 4096 bytesDisklabel type: dosDisk identifier: 0xa88f1366Device Boot Start End Sectors Size Id Type/dev/sda1*  2048 999423 997376 487M 83 Linux/dev/sda21001470 629145599 628144130 299.5G 5 Extended/dev/sda51001472 209713151 208711680 99.5G 8e Linux LVM/dev/sda6209715200 629145599 419430400 200G 83 LinuxPartition 2 does not start on physical sector boundary.Command (m forhelp): t # 改变分区类型为 Linux LVMPartition number (1,2,5,6, default 6): 6 # sda6Partition type(typeL to list all types): 8e # LVM 类型的 Id 代码Changed typeof partition 'Linux'to 'Linux LVM'.Command (m forhelp): p # 再次查看分区情况Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/Osize (minimum/optimal): 4096 bytes / 4096 bytesDisklabel type: dosDisk identifier: 0xa88f1366Device Boot Start End Sectors Size Id Type/dev/sda1*  2048 999423 997376 487M 83 Linux/dev/sda21001470 629145599 628144130 299.5G 5 Extended/dev/sda51001472 209713151 208711680 99.5G 8e Linux LVM/dev/sda6209715200 629145599 419430400 200G 8e Linux LVMPartition 2 does not start on physical sector boundary.Command (m forhelp): wq # 确认没有问题,保存退出The partition table has been altered.Calling ioctl() to re-readpartition table.Re-reading the partition table failed.: Device or resource busyThe 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). | 
新分区合并到相应 Volumn Group
运行命令
|   								1   								2   								3   								4   								5 | root@vm003:~# vgdisplay --- Volume group --- VG Name  Ubuntu System ID Format  lvm2 | 
可以看出我们要操作的VG Name 为 Ubuntu,记录下来。
接着运行命令
|   								1   								2   								3 | root@vm003:~# vgextend Ubuntu /dev/sda6 # /dev/sda6 是刚刚增加的 LVM 分区 Device /dev/sda6not found (or ignored by filtering). Unable to add physical volume '/dev/sda6'to volume group 'Ubuntu'. | 
呃,,,提示没有找到 /dev/sda6 这个设备,还是重启一下好了。
|   								1 | root@vm003:~# reboot | 
重启后再次执行
再查看一下 Volumn Group 的状态,运行命令
|   								1   								2   								3 | root@vm003:~# vgs VG #PV #LV #SN Attr VSize VFree Ubuntu 2 2 0 wz--n- 299.52g 200.00g | 
确实加进去了。
然后运行
|   								1   								2   								3   								4   								5 | root@vm003:~# lvdisplay --- Logical volume --- LV Path  /dev/Ubuntu/root LV Name  root VG Name  Ubuntu | 
我们知道了 Ubuntu VG 的 LV Path 是 /dev/Ubuntu/root,记录下来。
然后运行
|   								1   								2   								3 | root@vm003:~# lvresize -l +100%FREE /dev/Ubuntu/root # /dev/Ubuntu/root 是 LV Path Size of logical volume Ubuntu/rootchanged from 95.52 GiB (24453 extents) to 295.52 GiB (75652 extents). Logical volume root successfully resized. | 
这就成功啦。
警告: 如果操作时出现下面这样的 warning,就说明现在 logic volumn 的总大小还不对,resize 不但不增加空间,反而在缩小空间,如果继续操作下去,必将丢失数据。应立即停止!按 n 取消。
WARNING: Reducing active and open logical volume to 32.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce root [y/n]*
更新文件系统
最后一步,运行命令
|   								1   								2   								3   								4   								5   								6 | root@vm003:~# resize2fs -p /dev/mapper/Ubuntu-root # /dev/mapper/Ubuntu-root 是从 df 命令看到的文件系统信息resize2fs 1.42.13 (17-May-2015)Filesystem at /dev/mapper/Ubuntu-rootis mounted on /; on-line resizing requiredold_desc_blocks = 6, new_desc_blocks = 19The filesystem on /dev/mapper/Ubuntu-rootis now 77467648 (4k) blocks long. | 
这个过程可能会花几分钟时间,耐心等待就好了。
然后运行 df 命令查看磁盘使用
|   								1   								2   								3   								4   								5   								6   								7   								8   								9   								10   								11 | root@vm003:~# df -hFilesystem  Size Used Avail Use% Mounted onudev   3.9G 0 3.9G 0% /devtmpfs   798M 8.6M 789M 2% /run/dev/mapper/Ubuntu-root291G 88G 191G 32% /tmpfs   3.9G 0 3.9G 0% /dev/shmtmpfs   5.0M 0 5.0M 0% /run/locktmpfs   3.9G 0 3.9G 0% /sys/fs/cgroup/dev/sda1472M 382M 66M 86% /boottmpfs   100K 0 100K 0% /run/lxcfs/controllerstmpfs   798M 0 798M 0% /run/user/0 | 
大功告成!
参考:
http://www.zzvips.com/article/230466.html
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对爱主机评测网的支持。
 爱主机
爱主机
