CentOS7 新增16T硬盘扩容到根目录

摘要

业务服务器扩容磁盘,一般用户都比较喜欢把新增的磁盘容量扩容到原业务上的一个目录上,也就是说扩容业务目录的容量,其次情况下,同一目录下,无法挂载多个,不然会覆盖之前的挂载,所以要以卷组分方式来解决扩容。

现在的数据在爆炸式增长,磁盘空间越来越大。

在Linux中,由于ext3文件系统不支持大于2TB的分区,所以要使用GPT分区格式。

可利用parted命令来完成分区。fdisk 只能分区小于2T的磁盘,大于2T就要用到parted。

先把大容量的磁盘进行转换,转换为GPT格式。由于GPT格式的磁盘相当于原来MBR磁盘中原来保留4个 partition table的4*16个字节只留第一个16个字节,其它的类似于扩展分区,真正的partition table在512字节之后,所以对GPT磁盘表来讲没有四个主分区的限制。

目标

业务服务器新增一块硬盘,扩容到根目录。服务器硬盘容量320G,新添加硬盘容量16T。

LVM基本组成

LVM利用Linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,无需担心某个硬盘上没有足够的连续空间。

LVM的基本组成块(building blocks)如下:

  • 物理卷 Physical volume (PV) :可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(physical extents)
  • 卷组 Volume group (VG) :将一组物理卷收集为一个管理单元
  • 逻辑卷 Logical volume (LV) :虚拟分区,由物理区域
  • 物理区域 Physical extent (PE) :硬盘可供指派给逻辑卷的最小单位(通常为4MB)

LVM 优点

比起正常的硬盘分区管理,LVM更富于弹性:查看当前系统的根目录磁盘容量大小

  • 使用卷组(VG),使众多硬盘空间看起来像一个大硬盘
  • 使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区
  • 可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小
  • 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间
  • 可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作,LVM上的文件系统也需要重新调整大小,某些文件系统也支持这样的在线操作。
  • 无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。
  • 允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。


复制代码
image
复制代码

查看服务器磁盘信息:sda是新增的大于2T的未分区的磁盘


复制代码
[root@localhost ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0  14.6T  0 disk
sdb           8:16   0 297.1G  0 disk
├─sdb1        8:17   0     1G  0 part /boot
└─sdb2        8:18   0 295.6G  0 part
  ├─cl-root 253:0    0   188G  0 lvm  /
  ├─cl-swap 253:1    0   7.6G  0 lvm  [SWAP]
  └─cl-home 253:2    0   100G  0 lvm  /home
sr0          11:0    1  1024M  0 rom
[root@localhost ~]#
复制代码


fdisk命令查看硬盘信息

添加一块硬盘(16T)到系统中,原硬盘(320G),具体步骤参考:

使用 fdisk -l 命令查看到这块新盘为 /dev/sda

复制代码
[root@localhost ~]# fdisk –l #查看硬盘

磁盘 /dev/sdb:319.0 GB, 318999887872 字节,623046656 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b8b56

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048     2099199     1048576   83  Linux
/dev/sdb2         2099200   622079999   309990400   8e  Linux LVM

磁盘 /dev/sda:16000.9 GB, 16000900661248 字节,31251759104 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节


磁盘 /dev/mapper/cl-root:201.9 GB, 201863462912 字节,394264576 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/cl-swap:8187 MB, 8187281408 字节,15990784 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/cl-home:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@localhost ~]#
复制代码

对vda进行分区


[root@localhost ~]# parted sda
错误: 无法对设备 sda - 没有那个文件或目录 做 stat 操作。
重试/Retry/放弃/Cancel?
重试/Retry/放弃/Cancel? cancel

提示失败,原因是:没有进入到dev目录下。

复制代码
[root@localhost ~]# cd /dev
[root@localhost dev]# parted sda    ##使用parted命令进行分区,进入parted分区工具。
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help   ##查看帮助信息
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END

  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted) mklabel gpt    ##输入mklable gpt,把sda改成gpt大分区格式。
(parted) print    ##查看sda分区状态。可以看到已经打上了gpt的标签。
Model: ATA ST16000NM000J-2T (scsi)
Disk /dev/sda: 16.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start  End  Size  File system  Name  标志

(parted) mkpart primary 0 16tb    ##创建一个主分区,容量从0GB开始到16TB的全部空间。
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? i    ##输入i忽略警告
(parted) print    ##查看sda分区状态
Model: ATA ST16000NM000J-2T (scsi)
Disk /dev/sda: 16.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     标志
 1      17.4kB  16.0TB  16.0TB               primary

(parted) quit    ##退出parted分区工具。 
信息: You may need to update /etc/fstab.
复制代码

查看磁盘信息

复制代码
[root@localhost dev]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0  14.6T  0 disk
└─sda1        8:1    0  14.6T  0 part
sdb           8:16   0 297.1G  0 disk
├─sdb1        8:17   0     1G  0 part /boot
└─sdb2        8:18   0 295.6G  0 part
  ├─cl-root 253:0    0   188G  0 lvm  /
  ├─cl-swap 253:1    0   7.6G  0 lvm  [SWAP]
  └─cl-home 253:2    0   100G  0 lvm  /home
sr0          11:0    1  1024M  0 rom
[root@localhost dev]#
复制代码

把sda1分区转为物理卷

[root@localhost dev]# partprobe   ##不重启读取分区信息
[root@localhost dev]# pvcreate /dev/sda1   ##将分出来的sda1分区转为物理卷
  Physical volume "/dev/sda1" successfully created.
[root@localhost dev]#

查看物理卷组状态信息,VG Name 是 cl

复制代码
[root@localhost dev]# vgdisplay
  --- Volume group ---
  VG Name               cl
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <295.63 GiB
  PE Size               4.00 MiB
  Total PE              75681
  Alloc PE / Size       75680 / 295.62 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               L10ygs-vvun-f89h-Lm8Q-kBLq-pjNs-EwnsHu
复制代码

把新增卷组空间全部扩容到根目录的逻辑卷

复制代码
[root@localhost dev]# vgextend cl /dev/sda1    ##将新的 PV 加入 cl 组卷
  Volume group "cl" successfully extended
[root@localhost dev]# lvextend -l +100%FREE /dev/mapper/cl-root   ##用 lvextend 将 /dev/mapper/cl-root 所在卷组所有剩余空间都分配给了它
  Size of logical volume cl/root changed from 188.00 GiB (48128 extents) to <14.74 TiB (3863040 extents).
  Logical volume cl/root successfully resized.
[root@localhost dev]# xfs_growfs /dev/mapper/cl-root   ##用 xfs_growfs 对扩容后的 LV 进行大小调整,使扩容生效
meta-data=/dev/mapper/cl-root    isize=512    agcount=4, agsize=12320768 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=49283072, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=24064, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 49283072 to 3955752960
[root@localhost ~]# vgdisplay  ## 查看卷组信息,可用 PE 已经为 0 个
   --- Volume group ---
   VG Name               cl
   System ID
   Format                lvm2
   Metadata Areas        2
   Metadata Sequence No  6
   VG Access             read/write
   VG Status             resizable
   MAX LV                0
   Cur LV                3
   Open LV               3
   Max PV                0
   Cur PV                2
   Act PV                2
   VG Size               14.84 TiB
   PE Size               4.00 MiB
   Total PE              3890592
   Alloc PE / Size       3890592 / 14.84 TiB
   Free  PE / Size       0 / 0
   VG UUID               L10ygs-vvun-f89h-Lm8Q-kBLq-pjNs-EwnsHu

 [root@localhost ~]#
复制代码

查看详情

复制代码
[root@localhost ~]# lvdisplay   ##查看 LV 信息,/dev/cl/root 已扩大为 14.74 TiB
  --- Logical volume ---
  LV Path                /dev/cl/root
  LV Name                root
  VG Name                cl
  LV UUID                xBO19q-8Hhu-iWOS-ee8Y-3UMx-mVic-jK2mq6
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2022-08-24 10:15:32 +0800
  LV Status              available
  # open                 1
  LV Size                <14.74 TiB
  Current LE             3863040
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/cl/home
  LV Name                home
  VG Name                cl
  LV UUID                QU60Op-xaHQ-m2CL-fraw-bvxn-aC1R-ak4Me9
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2022-08-24 10:15:37 +0800
  LV Status              available
  # open                 1
  LV Size                100.00 GiB
  Current LE             25600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/cl/swap
  LV Name                swap
  VG Name                cl
  LV UUID                AE3fdS-CdFH-3Ql1-uCjp-2vti-dyEb-500JLX
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2022-08-24 10:15:41 +0800
  LV Status              available
  # open                 2
  LV Size                7.62 GiB
  Current LE             1952
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

[root@localhost ~]# df –Th  # 查看挂载信息,/ 容量已扩大为 15T
文件系统            类型      容量  已用  可用 已用% 挂载点
devtmpfs            devtmpfs  3.7G     0  3.7G    0% /dev
tmpfs               tmpfs     3.7G   16K  3.7G    1% /dev/shm
tmpfs               tmpfs     3.7G  9.1M  3.7G    1% /run
tmpfs               tmpfs     3.7G     0  3.7G    0% /sys/fs/cgroup
/dev/mapper/cl-root xfs        15T  4.1G   15T    1% /
/dev/mapper/cl-home xfs       100G   33M  100G    1% /home
/dev/sdb1           xfs      1014M  185M  830M   19% /boot
tmpfs               tmpfs     757M     0  757M    0% /run/user/0
[root@localhost ~]#
复制代码

























posted @   我命由我不由天—hao  阅读(788)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示