182
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
天翼云硬盘使用教程-Linux云硬盘扩容后处理

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   



点击这里注册天翼云特邀VIP帐号,立即体验天翼云硬盘>>>


天翼云硬盘使用教程-Linux云硬盘扩容后处理


操作场景

扩容成功后,需要将扩容部分的容量划分至原有分区内,或者对扩容部分的云硬盘分配新的分区。

本文以“CentOS 7.0 64位”操作系统为例,采用fdisk和parted分区工具为扩容后的磁盘分配分区。不同操作系统的操作可能不同,本文仅供参考。

为扩容后的磁盘分配分区,您可以根据业务需要以及实际的磁盘情况选择以下两种扩容方式,具体如下:

方式一:新增分区(业务不中断)

为扩容后的磁盘增加新的分区,不需要卸载原有分区,相比替换原有分区的方法,对业务影响较小。推荐系统盘或者需要保证业务不中断的磁盘扩容场景使用。

如果当前磁盘使用的是MBR分区形式,则此时要求扩容后的数据盘最大容量为2TB,并且磁盘的分区数量还未达到上限。

方式二:替换原有分区(中断业务)

如果当前磁盘使用的是MBR分区形式,并且磁盘的分区数量已经达到上限,则此时需要替换原有分区。替换原有分区不会删除原有分区的数据,但是需要卸载原有分区,会影响线上业务运行。

注意:扩容时请谨慎操作,误操作可能会导致数据丢失或者异常,建议扩容前对数据进行备份,可以使用云硬盘备份

如果当前磁盘使用的是MBR分区形式,并且扩容后磁盘容量已经超过2TB,则超过2TB的部分容量无法使用。此时若需要使用超过2TB的部分容量,则必须将MBR分区形式换为GPT,更换磁盘分区形式时会清除磁盘的原有数据,请先对数据进行备份。

操作前检查

检查待扩容磁盘的文件系统

扩容前,需要检查待扩容磁盘的文件系统是否可正常挂载。

  1. (可选)如果待扩容磁盘分区未挂载,请执行命令mount /dev/xvdb1 /mnt/sdc,挂载磁盘分区至指定目录。在本例中,/dev/xvdb1为磁盘分区,/mnt/sdc为挂载目录。

  2. 执行命令df -TH,查看磁盘的挂载情况。回显如下:

[root@ecs-test]# df -TH 

Filesystem     Type      Size  Used Avail Use% Mounted on 

/dev/xvda2     xfs        11G  7.4G  3.2G  71% / 

devtmpfs       devtmpfs  4.1G     0  4.1G   0% /dev 

tmpfs          tmpfs     4.1G   82k  4.1G   1% /dev/shm 

tmpfs          tmpfs     4.1G  9.2M  4.1G   1% /run 

tmpfs          tmpfs     4.1G     0  4.1G   0% /sys/fs/cgroup 

/dev/xvda3     xfs       1.1G   39M  1.1G   4% /home 

/dev/xvda1     xfs       1.1G  131M  915M  13% /boot 

/dev/xvdb1     ext4       11G   38M  9.9G   1% /mnt/sdc

可以看到,“/dev/xvdb1”的文件系统为“ext4”,并且已挂载至“/mnt/sdc”。

  1. 执行命令ll /mnt/sdc,进入挂载目录查看磁盘上的文件。若可以查看到磁盘上的文件,则证明待扩容的磁盘情况正常。

查看分区形式,选择分区工具

分区前,需要查看当前磁盘的分区形式,当为MBR时可以选择fdisk或者parted工具,当为GPT时需要使用parted工具。

执行命令fdisk -l,查看当前磁盘的分区形式,回显如下:

[root@ecs-test]# fdisk -l 

...... 

Disk /dev/xvdb: 161.1 GB, 161061273600 bytes, 314572800 sectors 

Units = sectors of 1 * 512 = 512 bytes 

Sector size (logical/physical): 512 bytes / 512 bytes 

I/O size (minimum/optimal): 512 bytes / 512 bytes 

Disk label type: gpt 

 #         Start          End    Size  Type            Name 

 1           34    209715166    100G  Microsoft basic opt 

 2    209715167    314572766     50G  Microsoft basic opt1 

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

“Disk label type”表示当前磁盘的分区形式,dos表示磁盘分区形式为MBR,gpt表示磁盘分区形式为GPT。

采用新增分区方式分配扩容空间(fdisk工具)

本示例介绍使用fdisk工具,为磁盘扩容后的空间分配一个新的分区,并挂载到“/opt”目录下。

  1. 执行命令fdisk -l,查看磁盘的分区信息。回显如下:

[root@ecs-test]# fdisk -l 

Disk /dev/xvda: 64.4 GB, 64424509440 bytes, 125829120 sectors 

Units = sectors of 1 * 512 = 512 bytes 

Sector size (logical/physical): 512 bytes / 512 bytes 

I/O size (minimum/optimal): 512 bytes / 512 bytes 

Disk label type: dos 

Disk identifier: 0x000cc4ad 

Device Boot      Start         End      Blocks   Id  System 

/dev/xvda1   *        2048     2050047     1024000   83  Linux 

/dev/xvda2         2050048    22530047    10240000   83  Linux 

/dev/xvda3        22530048    24578047     1024000   83  Linux 

/dev/xvda4        24578048    83886079    29654016    5  Extended 

/dev/xvda5        24580096    26628095     1024000   82  Linux swap / Solaris

  1. 执行命令fdisk /dev/xvda,进入fdisk分区工具,以/dev/xvda为例。回显如下:

[root@ecs-test]# fdisk /dev/xvda 

Welcome to fdisk (util-linux 2.23.2). 

Changes will remain in memory only, until you decide to write them. 

Be careful before using the write command. 

Command (m for help):

  1. 输入“n”,按Enter,开始新建分区。回显如下:

Command (m for help): n 

All primary partitions are in use 

Adding logical partition 6 

First sector (26630144-83886079, default 26630144):

磁盘使用MBR分区形式,最多可以创建4个主分区,或者3个主分区加1个扩展分区。并且,扩展分区不可以直接使用,需要划分成若干个逻辑分区才可以使用。

此示例中系统盘主分区已满,且原来已经有5个分区(3个主分区加2个逻辑分区),所以系统自动在扩展分区中新增逻辑分区,编号为6。

  1. 输入新分区的起始磁柱编号,按Enter确认。如设置默认值,直接按Enter。回显如下:

First sector (26630144-83886079, default 26630144): 

Using default value 26630144 

Last sector, +sectors or +size{K,M,G} (26630144-83886079, default 83886079):

本示例中使用默认起始磁柱编号。

  1. 输入新分区的截止磁柱编号,按Enter确认。如设置默认值,直接按Enter。回显如下:

Last sector, +sectors or +size{K,M,G} (26630144-83886079, default 83886079): 

Using default value 83886079 

Partition 6 of type Linux and of size 27.3 GiB is set 

Command (m for help):

本示例中使用默认截止磁柱编号为例。

  1. 输入p,按Enter,查看新建分区。回显如下:

Disk /dev/xvda: 64.4 GB, 64424509440 bytes, 125829120 sectors 

Units = sectors of 1 * 512 = 512 bytes 

Sector size (logical/physical): 512 bytes / 512 bytes 

I/O size (minimum/optimal): 512 bytes / 512 bytes 

Disk label type: dos Disk identifier: 0x000cc4ad 

Device Boot      Start         End      Blocks   Id  System 

/dev/xvda1   *        2048     2050047     1024000   83  Linux 

/dev/xvda2         2050048    22530047    10240000   83  Linux 

/dev/xvda3        22530048    24578047     1024000   83  Linux 

/dev/xvda4        24578048    83886079    29654016    5  Extended 

/dev/xvda5        24580096    26628095     1024000   82  Linux swap / Solaris 

/dev/xvda6        26630144    83886079    28627968   83  Linux 

Command (m for help):

  1. 输入“w,按Enter,将分区结果写入分区表中。回显如下:

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.

以上回显表示分区创建完成。

如果过程中分区操作有误,请输入“q”,则会退出fdisk分区工具,之前的分区结果将不会被保留。

  1. 执行命令partprobe,将新的分区表变更同步至操作系统。

执行命令mkfs -t ext4 /dev/xvda6,设置新建分区文件系统格式。本示例中以“ext4” 文件格式为例。回显如下:

[root@ecs-test]# mkfs -t ext4 /dev/xvda6 

mke2fs 1.42.9 (28-Dec-2013) 

Filesystem label= 

OS type: Linux 

Block size=4096 (log=2) 

Fragment size=4096 (log=2) 

Stride=0 blocks, Stripe width=0 blocks 

1790544 inodes, 7156992 blocks 

357849 blocks (5.00%) reserved for the super user 

First data block=0 

Maximum filesystem blocks=2155872256 

219 block groups 

32768 blocks per group, 32768 fragments per group 

8176 inodes per group 

Superblock backups stored on blocks: 

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 

4096000 

Allocating group tables: done 

Writing inode tables: done 

Creating journal (32768 blocks): done 

Writing superblocks and filesystem accounting information: done

格式化需要等待一段时间,请观察系统运行状态,若回显中进程提示为done,则表示格式化完成。

  1. 执行命令mount /dev/xvda6 /opt,将新建分区挂载到需要增加空间的目录下,以/opt为例。

注意:新增加的分区挂载到不为空的目录时,该目录下原本的子目录和文件会被隐藏,所以,新增的分区最好挂载到空目录或者新建目录。如确实要挂载到不为空的目录,可将该目录下的子目录和文件临时移动到其他目录下,新分区挂载成功后,再将子目录和文件移动回来。

  1. 执行命令df -TH,查看挂载结果。回显如下:

[root@ecs-test]# df -TH 

Filesystem     Type      Size  Used Avail Use% Mounted on 

/dev/xvda2     xfs        11G  7.4G  3.2G  71% / 

devtmpfs       devtmpfs  4.1G     0  4.1G   0% /dev 

tmpfs          tmpfs     4.1G   82k  4.1G   1% /dev/shm 

tmpfs          tmpfs     4.1G  9.2M  4.1G   1% /run 

tmpfs          tmpfs     4.1G     0  4.1G   0% /sys/fs/cgroup 

/dev/xvda3     xfs       1.1G   39M  1.1G   4% /home 

/dev/xvda1     xfs       1.1G  131M  915M  13% /boot 

/dev/xvda6     ext4       29G   47M   28G   1% /opt

采用替换原有分区方式分配扩容空间(parted工具)

本示例介绍使用parted工具,将磁盘扩容后的容量分配到原有分区/dev/xvdc1中,替换原有分区。此操作需要中断业务。

本示例中,磁盘“/dev/xvdc”有1个分区,其中分区“/dev/xvdc1”已挂载至“/mnt/sdc”目录下。由于只有一个分区,因此该分区也算作末尾分区。

注意:扩容后的新增空间是添加在磁盘末尾的,对具有多个分区的的磁盘扩容时,只支持替换排在末尾的分区。

  1. 执行命令lsblk,查看磁盘的分区信息。回显如下:

[root@ecs]# lsblk 

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT 

xvda    202:0    0   80G  0 disk  

├─xvda1 202:1    0   40G  0 part / 

└─xvda2 202:2    0   40G  0 part /opt 

xvdb    202:16   0  350G  0 disk  

├─xvdb1 202:17   0  100G  0 part  

└─xvdb2 202:18   0  200G  0 part 

xvdc    202:32   0   60G  0 disk  

└─xvdc1 202:33   0    10G  0 part /mnt/sdc

当前数据盘“/dev/xvdc”总容量为60 GB,已分配分区的容量为10 GB,其中末尾分区为“/dev/xvdc1”,已挂载至“/mnt/sdc”目录下。

  1. 执行命令umount /mnt/sdc,卸载磁盘分区。

  2. 执行命令lsblk,确认/dev/xvdc分区已卸载成功。回显如下:

[root@ecs]# umount /mnt/sdc 

[root@ecs]# lsblk 

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT 

xvda    202:0    0   80G  0 disk  

├─xvda1 202:1    0   40G  0 part / 

└─xvda2 202:2    0   40G  0 part /opt 

xvdb    202:16   0  350G  0 disk  

├─xvdb1 202:17   0  100G  0 part  

└─xvdb2 202:18   0  200G  0 part 

xvdc    202:32   0   60G  0 disk  

└─xvdc1 202:33   0    10G  0 part

  1. 执行命令parted /dev/xvdc,进入parted分区工具,开始对磁盘的新扩容空间分配分区。回显如下:

[root@ecs]# parted /dev/xvdc 

GNU Parted 3.1 

Using /dev/xvdc 

Welcome to GNU Parted! Type 'help' to view a list of commands.

  1. 输入unit s,按Enter,设置磁盘的计量单位为磁柱。输入p,按Enter,查看当前磁盘分区情况。回显如下:

(parted) unit s                                                    

(parted) p                                                         

Error: The backup GPT table is not at the end of the disk, as it should be.   

This might mean that another operating system believes the disk is smaller.   

Fix, by moving the backup to the end (and removing the old backup)? 

Fix/Ignore/Cancel? Fix                                                     

Warning: Not all of the space available to /dev/xvdb appears to be used,  

you can fix the GPT to use all of the space (an extra 104857600 blocks)  

or continue with the current setting?  

Fix/Ignore? Fix                                                           

Model: Xen Virtual Block Device (xvd) 

Disk /dev/xvdc: 125829120s 

Sector size (logical/physical): 512B/512B 

Partition Table: gpt 

Disk Flags:  

Number  Start       End         Size        File system  Name  Flags 

1      2048s 20969471s  20967424s    ext4         opt

如果出现以上提示信息,输入“Fix”修复当前磁盘的异常情况。并记录待替换分区“/dev/xvdc1”的初始和截止磁柱值,在后续重新划分分区需要使用。此处初始磁柱值为2048,截止磁柱值为20969471。

  1. 删除待替换的末尾分区/dev/xvdc1。分区编号为1,因此输入rm 1,按Enter。输入“p”,按Enter,查看当前/dev/xvdc1分区是否删除成功。回显如下:

(parted) rm 1 

(parted) p                                                                 

Model: Xen Virtual Block Device (xvd) 

Disk /dev/xvdc: 125829120s 

Sector size (logical/physical): 512B/512B 

Partition Table: gpt 

Disk Flags:  

Number  Start  End         Size        File system  Name  Flags

显示已删除成功。

  1. 重新划分分区,输入mkpart opt 2048s 125829119”,按Enter。其中,2048步骤6中记录的初始磁柱值,125829119表示截止磁柱值,应该大于等于步骤5中记录的截止磁柱值。根据系统提示输入“Yes。回显如下:

(parted) mkpart opt 2048s 125829119s 

Warning: You requested a partition from 2048s to 125829199s (sectors 2048..125829199). 

The closest location we can manage is 2048s to 125829036s (sectors 2048..125829036). 

Is this still acceptable to you? 

Yes/No? Yes

若出现以下性能优化提示,请先输入“Cancel”,停止分区。

Warning: The resulting partition is not properly aligned for best performance. 

Ignore/Cancel? Cancel

然后找出对应磁盘最优性能的初始磁柱值,再使用该值进行分区即可。如果已经是最优性能,则不会出现该提示,本操作中性能最优的初始磁柱值即为2048s,因此系统没有该提示。

注意 :以下操作可能会导致数据丢失:选择的初始磁柱值与原分区的不一致选择的截止磁柱值小于原分区的值

  1. 输入p,按Enter,查看当前/dev/xvdc1分区是否替换成功。回显如下:

(parted) p                                                                 

Model: Xen Virtual Block Device (xvd) 

Disk /dev/xvdc: 125829120s 

Sector size (logical/physical): 512B/512B 

Partition Table: gpt 

Disk Flags:  

Number  Start       End         Size        File system  Name  Flags 

1      2048s       125829086s  125827039s  ext4         opt

表示“/dev/xvdc1”分区替换成功。

  1. 输入q,按Enter,退出parted分区工具。

  2. 根据磁盘的文件系统,选择不同方法扩展磁盘分区文件系统的大小。

  • 若磁盘文件系统为ext3或ext4,请执行如下步骤。

  1. 执行命令e2fsck -f /dev/xvdc1,检查/dev/xvdc1文件系统的正确性。回显如下:

[root@ecs]# e2fsck -f /dev/xvdb2 

e2fsck 1.42.9 (28-Dec-2013) 

Pass 1: Checking inodes, blocks, and sizes 

Pass 2: Checking directory structure 

Pass 3: Checking directory connectivity 

Pass 4: Checking reference counts 

Pass 5: Checking group summary information 

/dev/xvdc1: 11/655360 files (0.0% non-contiguous), 83137/2620928 blocks

  1. 执行命令resize2fs /dev/xvdc1,扩展/dev/xvdc1文件系统的大小。回显如下:

[root@ecs]# resize2fs /dev/xvdc1 

resize2fs 1.42.9 (28-Dec-2013) 

Resizing the filesystem on /dev/xvdc1 to 15728379 (4k) blocks. 

The filesystem on /dev/xvdc1 is now 15728379 blocks long.

  1. 执行命令lsblk,查看替换分区后数据盘的情况。回显如下:

[root@ecs]# lsblk 

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT 

xvda    202:0    0   80G  0 disk  

├─xvda1 202:1    0   40G  0 part / 

└─xvda2 202:2    0   40G  0 part /opt 

xvdb    202:16   0  350G  0 disk  

├─xvdb1 202:17   0  100G  0 part  

└─xvdb2 202:18   0  200G  0 part 

xvdc    202:32   0   60G  0 disk  

└─xvdc1 202:33   0    60G  0 part

表示当前“/dev/xvdc”总容量为60 GB,新增的50GB已经划分在“/dev/xvdc1”分区内。

  1. 执行命令mount /dev/xvdc1 /mnt/sdc,将新建分区挂载到“/mnt/sdc”目录下。

  • 若磁盘文件系统为xfs,请执行如下步骤。

  1. 执行命令mount /dev/xvdc1 /mnt/sdc,将新建分区挂载到“/mnt/sdc”目录下。

  2. 执行命令sudo xfs_growfs /dev/xvdc1,扩展“/dev/xvdc1”文件系统的大小。

  3. 执行以下命令lsblk,查看替换分区后数据盘的情况。回显如下:

[root@ecs]# lsblk 

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT 

xvda    202:0    0   80G  0 disk  

├─xvda1 202:1    0   40G  0 part / 

└─xvda2 202:2    0   40G  0 part /opt 

xvdb    202:16   0  350G  0 disk  

├─xvdb1 202:17   0  100G  0 part  

└─xvdb2 202:18   0  200G  0 part 

xvdc    202:32   0   60G  0 disk  

└─xvdc1 202:33   0    60G  0 part

表示当前“/dev/xvdc”总容量为60 GB,新增的50GB已经划分在“/dev/xvdc1”分区内。

  1. 执行命令df -TH,查看“/dev/xvdc1”分区挂载结果。回显如下:

[root@ecs]# df -TH 

Filesystem     Type      Size  Used Avail Use% Mounted on 

/dev/xvda1     ext4       43G  8.3G   33G  21% / 

devtmpfs       devtmpfs  885M     0  885M   0% /dev 

tmpfs          tmpfs     894M     0  894M   0% /dev/shm 

tmpfs          tmpfs     894M   18M  877M   2% /run 

tmpfs          tmpfs     894M     0  894M   0% /sys/fs/cgroup 

tmpfs          tmpfs     179M     0  179M   0% /run/user/2000 

tmpfs          tmpfs     179M     0  179M   0% /run/user/0 

tmpfs          tmpfs     179M     0  179M   0% /run/user/1001 

/dev/xvda2     ext4       43G   51M   40G   1% /opt 

/dev/xvdc1     ext4       64G   55M   60G   1% /mnt/sdc

设置开机自动挂载磁盘

如果您需要在云主机系统启动时自动挂载磁盘,不能采用在 /etc/fstab直接指定 /dev/xvdb1的方法,因为云中设备的顺序编码在关闭或者开启云主机过程中可能发生改变,例如/dev/xvdb1可能会变成/dev/xvdb2。推荐使用UUID来配置自动挂载数据盘。磁盘的UUID(universally unique identifier)是Linux系统为磁盘分区提供的唯一的标识字符串。

  1. 执行命令blkid /dev/xvdb1,查询磁盘分区的UUID。回显如下:

[root@ecs-test]# blkid /dev/xvdb1 

/dev/xvdb1: UUID="******-****-****-****-******" TYPE="ext4"

  1. 执行命令vi /etc/fstab,使用VI编辑器打开fstab文件。按“i”,进入编辑模式。将光标移至文件末尾,按Enter,添加如下内容,其中UUID=处的内容请输入您在上一步中查询到的UUID。

UUID=******-****-****-****-****** /mnt/sdc      ext4 defaults     0   2

  1. ESC后,输入:wq,按Enter。保存设置并退出编辑器。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!