随着业务的下降,aliyun数据盘容量可能难以满足数据储存的须要,这时可以使用“”磁盘扩容“”功能扩容数据盘。
实例演示:
本文以一个SSD网盘的数据盘和一个运行Ubuntu16..464位的ECS实例为例linux 分区 无损扩容,说明怎样扩容c盘分区并使扩容后的容量可用。
未扩容前的数据盘只有一个主分区(/dev/vdb1,ext4文件系统),文件系统的挂载点为/dataRED HAT LINUX 9.0,文件系统扩容完成后永久免费linux服务器,数据盘依然只有一个主分区。
1.在阿里云控制台对指定c盘进行扩容操作
本次示例为50GB扩容到60GB
2.创建测试文件
先在原有分区内创建测试文件,扩容完毕后检测文件
root@zstest:~# mkdir -p /data/test root@zstest:~# touch /data/test/20180327 root@zstest:~# touch /data/test/20180327.txt root@zstest:~# tree /data/ /data/ ├── lost+found └── test ├── 20180327 └── 20180327.txt
3.卸载旧分区
3.1.运行“umount[文件系统名称]”命令卸载主分区。
umount /dev/vdb1
3.2.使用df-h查看是否卸载成功,假如看不到/dev/vdb1的信息表示卸载成功
root@zstest:~# df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 799M 3.0M 796M 1% /run /dev/vda1 50G 5.4G 42G 12% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs 799M 0 799M 0% /run/user/0
4.扩容指定的分区
4.1.使用fdisk命令删掉原先的分区并创建新分区:
运行命令fdisk-l列举分区信息并记录扩容前数据盘的最终容量、起始磁道(Firstsector)位置。
root@zstest:~# fdisk -l Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 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 Disklabel type: dos Disk identifier: 0xd6804155 Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 104855551 104853504 50G 83 Linux Disk /dev/vdb: 60 GiB, 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 Disklabel type: dos Disk identifier: 0x63c3e6e0 Device Boot Start End Sectors Size Id Type /dev/vdb1 2048 104857599 104855552 50G 83 Linux
过程原理:
先删掉原有分区表,之后重建分区表,保存退出
创建分区表操作步骤:
1)输入第一个可用的磁道编号:为了保证数据的一致性,Firstsector须要与原先的分区保持一致。在本示例中,按回车键采用默认值。
2)假如发觉Firstsector显示的位置和之前记录的不一致,说明之前可能使用parted来分区,这么就停止当前的fdisk操作,使用parted重新操作。
3)输入最后一个磁道编号:由于这儿仅创建一个分区,所以按回车键采用默认值。
对指定的c盘进行操作
fdisk /dev/vdb
root@zstest:~# fdisk /dev/vdb Welcome to fdisk (util-linux 2.27.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d Selected partition 1 Partition 1 has been deleted. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): First sector (2048-125829119, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-125829119, default 125829119): Created a new partition 1 of type ‘Linux‘ and of size 60 GiB. Command (m for help): wq The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
假如操作对象是指定的分区,会出现以下提示
root@zstest:~# fdisk /dev/vdb1 /dev/vdb1: device contains a valid ‘ext4‘ signature; it is strongly recommended to wipe the device with wipefs(8) if this is unexpected, in order to avoid possible collisions
由以上内容可知,c盘分区是针对c盘级别进行的操作,而不是分区级别
4.2.注意检测分区挂载情况:
保存退出后须要重新检查分区挂载情况,若果/dev/vdb1又被挂载起来就须要重新卸载该分区
root@zstest:~# df -h Filesystem Size Used Avail Use% Mounted on udev 7.9G 0 7.9G 0% /dev tmpfs 1.6G 3.2M 1.6G 1% /run /dev/vda1 50G 5.7G 41G 13% / tmpfs 7.9G 0 7.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup tmpfs 1.6G 0 1.6G 0% /run/user/0 /dev/vdb1 50G 52M 47G 1% /data root@zstest:~# umount /dev/vdb1 root@zstest:~# df -h Filesystem Size Used Avail Use% Mounted on udev 7.9G 0 7.9G 0% /dev tmpfs 1.6G 3.2M 1.6G 1% /run /dev/vda1 50G 5.7G 41G 13% / tmpfs 7.9G 0 7.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup tmpfs 1.6G 0 1.6G 0% /run/user/0
4.3.重新读取分区表信息
#检测文件系统
e2fsck -f /dev/vdb1
#变更文件系统大小
resize2fs /dev/vdb1
注意:
使用e2fsck时,因为系统须要检测并订正文件系统元数据,所以速率较慢、耗时较长,请耐心等待。
正确使用e2fsck和resize2fs指令,不会导致原有数据遗失。
root@zstest:~# e2fsck -f /dev/vdb1 e2fsck 1.42.13 (17-May-2015) 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/vdb1: 14/3276800 files (0.0% non-contiguous), 251700/13106944 blocks root@zstest:~# resize2fs /dev/vdb1 resize2fs 1.42.13 (17-May-2015) Resizing the filesystem on /dev/vdb1 to 15728384 (4k) blocks. The filesystem on /dev/vdb1 is now 15728384 (4k) blocks long.
5.挂载新分区
5.1.重新挂载分区到指定目录
mount /dev/vdb1 /data
root@zstest:~# mount /dev/vdb1 /data root@zstest:~# df -h Filesystem Size Used Avail Use% Mounted on udev 7.9G 0 7.9G 0% /dev tmpfs 1.6G 3.2M 1.6G 1% /run /dev/vda1 50G 5.7G 41G 13% / tmpfs 7.9G 0 7.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup tmpfs 1.6G 0 1.6G 0% /run/user/0 /dev/vdb1 59G 52M 56G 1% /data
5.2.配置开机器手动挂载分区
vim /etc/fstab
root@zstest:/data# vim /etc/fstab ...... /dev/vdb1 /data ext4 defaults 0 0
6.重启系统进行验证
#检测文件,确认c盘扩容成功
root@zstest:~# tree /data/ /data/ ├── lost+found └── test ├── 20180327 └── 20180327.txt
注意:尽管是无损扩容,并且最好操作之前做好备份,或快照,以免意外发生
以下是阿里云提示的注意事项:
1.c盘扩容功能只能扩容数据盘,不能扩容系统盘或本地盘(本地SSD盘等)。
2.挂载在实例上的数据盘,只有当实例处于运行中(Running)或已停止(Stopped)状态时才可以扩容。
无论数据盘的状态是待挂载还是使用中,都可以执行c盘扩容操作。
3.扩容这些数据盘须要在控制台上重启实例后才会使扩容后的容量生效,而重启实例会停止实例,中断您的业务,所以请您慎重操作。
4.建议在扩容数据盘之前自动创建快照linux 分区 无损扩容,以备份数据。
5.假如数据盘正在创建快照,则不容许执行扩容数据盘的操作。
6.包月包年实例假如做过续费降配操作,当前计费周期的剩余时间内,实例上的包月包年网盘不支持扩容c盘操作。
经验:
1.重新分区(创建分区表)并不会删掉c盘分区的数据,低格则会删掉,
2.分区类型及个数最好不要调整
=====================END========================