当前位置:论坛首页 > Linux面板 > Linux面板教程

【教程贴】Linux类系统手动操作篇--lvm硬盘和目录扩容

发表在 Linux面板2021-1-26 11:56 [复制链接] 2 3606

!!!必读!!!
!!!数据无价,谨慎操作,操作之前做好服务器快照,方便操作失败回滚!!!
!!!数据无价,谨慎操作,操作之前做好服务器快照,方便操作失败回滚!!!
!!!数据无价,谨慎操作,操作之前做好服务器快照,方便操作失败回滚!!!
自身动手能力或阅读能力不强的话可以找身边懂的人操作,或让服务器运营商帮忙操作。
不建议小白自己操作,不做快照又要操作数据丢失风险自己承担。
只分享基础教程,操作失误导致数据丢失自行负责。
所有命令衔接都要注意有空格的。
重要的事情说三遍,重要的事情提前说。



磁盘/硬盘扩容

定义比如我现在只有1个硬盘,并且硬盘只挂载了一个根(/)目录,我空间用完了,不够用了。那么此时就需要找服务器商增加这块硬盘的容量。那么问题来了,服务器商帮我们增加硬盘容量的时候,有时候并不会帮我们在系统已经挂载的目录上扩容,需要我们自己手动进行目录扩容。
(小贴士:有些服务器商不支持硬盘扩容,只能增加多一块硬盘,后面会说临时转移数据手动挂载新硬盘的方法)

这是扩容前的面板根(/)目录容量显示情况:

lvm扩容前面板硬盘容量.jpg

1.1 从服务器商那边申请扩容成功后,通过ssh进入服务器查看当前的磁盘情况。
命令:lsblk和df -Th

我原来的硬盘是20G,现在需要扩容到40G,如果查看分区,也就是根(/)目录是如下这种情况,说明运营商已经帮我在目录挂在好了,本教程可以跳过阅读。

lvm扩容后1111.jpg

如果显示分区,也就是根(/)目录仍然是挂载20G(实际是17G,不影响我们继续),还有20G未使用的,那继续往下读。

lvm扩容前1111.jpg

1.2 使用fdisk命令对硬盘进行扩容,其中/dev/sda为你的真实硬盘标识,我的是sda,有些人的是vda,vdb,vdc或其他,注意切换成自己的。
注意:以下所有操作都是加载在内存中操作的,只要操作后不输入w保存,就不会生效,同时注意不要随意就输入w保存了。
命令:fdisk /dev/sda

lvm扩容2.jpg

上图中,使用fdisk对/dev/sda硬盘进行了操作;进入操作台界面后,会有提示按m获取可执行菜单,这边不演示,自行查看。
输入p键,回车;p键功能是打印出现有的硬盘分区情况,可以看到有sda1,sda2两个分区;那么从前面lsblk命令查看可以得知,这时sda2就不是我需要扩容的分区了,真正需要扩容的是lvm做的根(/)目录。敲黑板,与标准分区扩容不同,由于做了lvm,待会需要扩容lvm才能真正实现目录容量扩容。所以我们这次要直接新建多一个主分区来达到目录扩容的目的。
注意:记住/dev/sda2中end的位置,也就是这一串数字(41943039),如果你有多个分区的话这个很重要,因为它是这个sda2的结束位置。

1.3 打印出分区之后,已经得知我们要新建一个sda3了,下面进行操作,输入n创建分区,会提示需要主分区还是扩展分区,选主分区,输入p,由于我后面没有分区了,直接扩容就一路回车。

注意:输入d后不会真正删除这个分区,可以理解为预操作,删除后不要执行w。

lvm扩容3.jpg

最终会提示第3个分区已经创建成功,并且设置了20G容量。随后输入p查看我们新建的第3个分区有没有成功,没有问题后输入w保存所有设置。

1.4 此时使用命令刷新分区,并且查看扩容后的硬盘容量。贴出结果可以看出,硬盘已经扩容成功。注意,只是硬盘,不要直接就重启系统测试了,很危险朋友们。
命令:partprobe /dev/sda和lsblk

lvm扩容4.jpg

随后创建物理卷,并且打印出来原来的卷组名称,得知卷组名称为centos,这个会变动的,以自己实际的为准。
命令:pvcreate /dev/sda3以及vgdisplay

1.5 接着我们将刚刚创建的sda3添加到这个卷组里面。

lvm扩容5.jpg

1.6 再接着查看逻辑卷的名称,得知为/dev/centos/root,这个就是咱们需要扩容的分区目录卷名

lvm扩容6.jpg

1.7 使用命令将所有空闲空间添加到这个卷里面
命令:lvextend -l +100%FREE /dev/centos/root

lvm扩容7.jpg

1.8 已知文件系统为xfs,所以使用如下命令扩容到根(/)目录;随后使用df -Th查看是否已经对目录扩容成功
命令:xfs_growfs /dev/centos/root
注意:文件系统不同使用的命令是不同的, 如果你的是ext4的文件系统的话,就使用resize2fs /dev/sda3

lvm扩容9.jpg

1.9 执行完目录扩容大小的命令后,再使用df -Th查看最终的目录容量效果,显示到38G后,说明我们本次的目录扩容已经成功。lsblk次之~
确定没有问题后,重启服务器进行二次确认。

lvm扩容10.jpg

2. 下面是扩容后面板显示的根(/)目录情况

lvm扩容后面板的硬盘容量.jpg


使用道具 举报 只看该作者 回复
发表于 2021-1-26 14:37:46 | 显示全部楼层
这里是操作的ssh全部记录:


  1. [root@aioCloud ~]# lsblk    #查看硬盘容量
  2. NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
  3. sda               8:0    0   40G  0 disk
  4. ├─sda1            8:1    0    1G  0 part /boot
  5. └─sda2            8:2    0   19G  0 part
  6.   ├─centos-root 253:0    0   17G  0 lvm  /
  7.   └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  8. sr0              11:0    1  918M  0 rom  
  9. [root@aioCloud ~]# df -Th    #查看目录容量和文件系统类型
  10. Filesystem              Type      Size  Used Avail Use% Mounted on
  11. /dev/mapper/centos-root xfs        17G  1.8G   16G  11% /
  12. devtmpfs                devtmpfs  898M     0  898M   0% /dev
  13. tmpfs                   tmpfs     910M     0  910M   0% /dev/shm
  14. tmpfs                   tmpfs     910M  9.6M  901M   2% /run
  15. tmpfs                   tmpfs     910M     0  910M   0% /sys/fs/cgroup
  16. /dev/sda1               xfs      1014M  146M  869M  15% /boot
  17. tmpfs                   tmpfs     182M     0  182M   0% /run/user/0
  18. [root@aioCloud ~]# fdisk /dev/sda    #操作sda这块硬盘
  19. Welcome to fdisk (util-linux 2.23.2).

  20. Changes will remain in memory only, until you decide to write them.
  21. Be careful before using the write command.


  22. Command (m for help): p    #打印分区

  23. Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
  24. Units = sectors of 1 * 512 = 512 bytes
  25. Sector size (logical/physical): 512 bytes / 512 bytes
  26. I/O size (minimum/optimal): 512 bytes / 512 bytes
  27. Disk label type: dos
  28. Disk identifier: 0x000a814e

  29.    Device Boot      Start         End      Blocks   Id  System
  30. /dev/sda1   *        2048     2099199     1048576   83  Linux
  31. /dev/sda2         2099200    41943039    19921920   8e  Linux LVM

  32. Command (m for help): n    #新建分区
  33. Partition type:
  34.    p   primary (2 primary, 0 extended, 2 free)    #主分区
  35.    e   extended
  36. Select (default p): p    #选择主分区
  37. Partition number (3,4, default 3):     #默认第3个
  38. First sector (41943040-83886079, default 41943040):     #默认开始41943040
  39. Using default value 41943040
  40. Last sector, +sectors or +size{K,M,G} (41943040-83886079, default 83886079):     #默认结束83886079
  41. Using default value 83886079
  42. Partition 3 of type Linux and of size 20 GiB is set    #设置了第3个分区20G

  43. Command (m for help): p    #再次打印分区

  44. Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
  45. Units = sectors of 1 * 512 = 512 bytes
  46. Sector size (logical/physical): 512 bytes / 512 bytes
  47. I/O size (minimum/optimal): 512 bytes / 512 bytes
  48. Disk label type: dos
  49. Disk identifier: 0x000a814e

  50.    Device Boot      Start         End      Blocks   Id  System
  51. /dev/sda1   *        2048     2099199     1048576   83  Linux
  52. /dev/sda2         2099200    41943039    19921920   8e  Linux LVM
  53. /dev/sda3        41943040    83886079    20971520   83  Linux    #创建了第3个分区

  54. Command (m for help): w    #保存所有设置
  55. The partition table has been altered!

  56. Calling ioctl() to re-read partition table.

  57. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
  58. The kernel still uses the old table. The new table will be used at
  59. the next reboot or after you run partprobe(8) or kpartx(8)
  60. Syncing disks.
  61. [root@aioCloud ~]# partprobe /dev/sda    #刷新硬盘分区
  62. [root@aioCloud ~]# pvcreate /dev/sda3    #创建物理卷
  63.   Physical volume "/dev/sda3" successfully created.
  64. [root@aioCloud ~]# vgdisplay    #查看卷组名
  65.   --- Volume group ---
  66.   VG Name               centos    #卷组名为centos
  67.   System ID            
  68.   Format                lvm2
  69.   Metadata Areas        1
  70.   Metadata Sequence No  3
  71.   VG Access             read/write
  72.   VG Status             resizable
  73.   MAX LV                0
  74.   Cur LV                2
  75.   Open LV               2
  76.   Max PV                0
  77.   Cur PV                1
  78.   Act PV                1
  79.   VG Size               <19.00 GiB
  80.   PE Size               4.00 MiB
  81.   Total PE              4863
  82.   Alloc PE / Size       4863 / <19.00 GiB
  83.   Free  PE / Size       0 / 0   
  84.   VG UUID               h3zcWq-c7sW-TYfu-LOaG-qBO0-FcYR-ffiRUK
  85.    
  86. [root@aioCloud ~]# vgextend centos /dev/sda3    #将物理卷添加到卷组
  87.   Volume group "centos" successfully extended
  88. [root@aioCloud ~]# lvdisplay    #查看逻辑卷组名
  89.   --- Logical volume ---
  90.   LV Path                /dev/centos/swap
  91.   LV Name                swap
  92.   VG Name                centos
  93.   LV UUID                X1U0Aj-HN1N-xFFx-uUmg-olLD-GmSc-Z6cdd9
  94.   LV Write Access        read/write
  95.   LV Creation host, time aioCloud, 2021-01-25 18:20:01 +0800
  96.   LV Status              available
  97.   # open                 2
  98.   LV Size                2.00 GiB
  99.   Current LE             512
  100.   Segments               1
  101.   Allocation             inherit
  102.   Read ahead sectors     auto
  103.   - currently set to     8192
  104.   Block device           253:1
  105.    
  106.   --- Logical volume ---
  107.   LV Path                /dev/centos/root    #这个就是我们需要扩容的目录卷组名
  108.   LV Name                root
  109.   VG Name                centos
  110.   LV UUID                BLUfI9-1SEK-5Lbc-sDN8-iCmt-kJMM-B7cGYT
  111.   LV Write Access        read/write
  112.   LV Creation host, time aioCloud, 2021-01-25 18:20:01 +0800
  113.   LV Status              available
  114.   # open                 1
  115.   LV Size                <17.00 GiB
  116.   Current LE             4351
  117.   Segments               1
  118.   Allocation             inherit
  119.   Read ahead sectors     auto
  120.   - currently set to     8192
  121.   Block device           253:0
  122.    
  123. [root@aioCloud ~]# lvextend -l +100%FREE /dev/centos/root    #扩容所有空闲容量到/dev/centos/root
  124.   Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to 36.99 GiB (9470 extents).
  125.   Logical volume centos/root successfully resized.
  126. [root@aioCloud ~]# df -Th    #查看目录容量
  127. Filesystem              Type      Size  Used Avail Use% Mounted on
  128. /dev/mapper/centos-root xfs        17G  1.8G   16G  11% /
  129. devtmpfs                devtmpfs  898M     0  898M   0% /dev
  130. tmpfs                   tmpfs     910M     0  910M   0% /dev/shm
  131. tmpfs                   tmpfs     910M  9.6M  901M   2% /run
  132. tmpfs                   tmpfs     910M     0  910M   0% /sys/fs/cgroup
  133. /dev/sda1               xfs      1014M  146M  869M  15% /boot
  134. tmpfs                   tmpfs     182M     0  182M   0% /run/user/0
  135. [root@aioCloud ~]# xfs_growfs /dev/centos/root    #更新根目录容量
  136. meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks
  137.          =                       sectsz=512   attr=2, projid32bit=1
  138.          =                       crc=1        finobt=0 spinodes=0
  139. data     =                       bsize=4096   blocks=4455424, imaxpct=25
  140.          =                       sunit=0      swidth=0 blks
  141. naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
  142. log      =internal               bsize=4096   blocks=2560, version=2
  143.          =                       sectsz=512   sunit=0 blks, lazy-count=1
  144. realtime =none                   extsz=4096   blocks=0, rtextents=0
  145. data blocks changed from 4455424 to 9697280
  146. [root@aioCloud ~]# df -Th    #再次查看目录容量
  147. Filesystem              Type      Size  Used Avail Use% Mounted on
  148. /dev/mapper/centos-root xfs        37G  1.8G   36G   5% /
  149. devtmpfs                devtmpfs  898M     0  898M   0% /dev
  150. tmpfs                   tmpfs     910M     0  910M   0% /dev/shm
  151. tmpfs                   tmpfs     910M  9.6M  901M   2% /run
  152. tmpfs                   tmpfs     910M     0  910M   0% /sys/fs/cgroup
  153. /dev/sda1               xfs      1014M  146M  869M  15% /boot
  154. tmpfs                   tmpfs     182M     0  182M   0% /run/user/0
  155. [root@aioCloud ~]# lsblk    #再次查看分区状态
  156. NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
  157. sda               8:0    0   40G  0 disk
  158. ├─sda1            8:1    0    1G  0 part /boot
  159. ├─sda2            8:2    0   19G  0 part
  160. │ ├─centos-root 253:0    0   37G  0 lvm  /
  161. │ └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  162. └─sda3            8:3    0   20G  0 part
  163.   └─centos-root 253:0    0   37G  0 lvm  /
  164. sr0              11:0    1  918M  0 rom  
  165. [root@aioCloud ~]# reboot    #重启后再测试
复制代码


使用道具 举报 回复 支持 1 反对 0
发表于 2021-1-26 14:30:47 | 显示全部楼层
好帖 辛苦啦
爱你
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表