Linux磁盘分区扩容
随着业务的增长,aliyun数据盘容量可能无法满足数据存储的需要,这时可以使用“”磁盘扩容“”功能扩容数据盘。
本文以一个SSD云盘的数据盘和一个运行Ubuntu 16..4 64位的 ECS 实例为例,说明如何扩容磁盘分区并使扩容后的容量可用。
未扩容前的数据盘只有一个主分区(/dev/vdb1,ext4 文件系统),文件系统的挂载点为 /data,文件系统扩容完成后,数据盘仍然只有一个主分区。
1.在阿里云控制台对指定磁盘进行扩容操作
本次示例为50GB扩容到60GB
2.创建测试文件
先在原有分区内创建测试文件,扩容完毕后检查文件
root@zstest:~# mkdir -p /data/test
root@zstest:~# touch /data/test/
root@zstest:~# touch /data/test/.txt
root@zstest:~# tree /data/
/data/
├── lost+found
└── test
├──
└── .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 .9G .9G % /dev
tmpfs 799M 3.0M 796M % /run
/dev/vda1 50G .4G 42G % /
tmpfs .9G .9G % /dev/shm
tmpfs 5.0M 5.0M % /run/lock
tmpfs .9G .9G % /sys/fs/cgroup
tmpfs 799M 799M % /run/user/
4.扩容指定的分区
4.1.使用 fdisk 命令删除原来的分区并创建新分区
运行命令 fdisk -l 罗列分区信息并记录扩容前数据盘的最终容量、起始扇区(First sector)位置。
root@zstest:~# fdisk -l
Disk /dev/vda: GiB, bytes, sectors
Units: sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disklabel type: dos
Disk identifier: 0xd6804155 Device Boot Start End Sectors Size Id Type
/dev/vda1 * 50G Linux Disk /dev/vdb: GiB, bytes, sectors
Units: sectors of * = bytes
Sector size (logical/physical): bytes / bytes
I/O size (minimum/optimal): bytes / bytes
Disklabel type: dos
Disk identifier: 0x63c3e6e0 Device Boot Start End Sectors Size Id Type
/dev/vdb1 50G Linux
过程原理:
先删除原有分区表,然后重建分区表,保存退出
创建分区表操作步骤:
1)输入第一个可用的扇区编号:为了保证数据的一致性,First sector 需要与原来的分区保持一致。在本示例中,按回车键采用默认值。
2)如果发现 First sector 显示的位置和之前记录的不一致,说明之前可能使用 parted 来分区,那么就停止当前的 fdisk 操作,使用 parted 重新操作。
3)输入最后一个扇区编号:因为这里仅创建一个分区,所以按回车键采用默认值。
对指定的磁盘进行操作
fdisk /dev/vdb
root@zstest:~# fdisk /dev/vdb Welcome to fdisk (util-linux 2.27.).
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
Partition has been deleted. Command (m for help): n
Partition type
p primary ( primary, extended, free)
e extended (container for logical partitions)
Select (default p): p
Partition number (-, default ):
First sector (-, default ):
Last sector, +sectors or +size{K,M,G,T,P} (-, default ): Created a new partition of type 'Linux' and of size 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() if this is unexpected, in order to avoid possible collisions
由以上内容可知,磁盘分区是针对磁盘级别进行的操作,而不是分区级别
4.2.检查分区挂载情况
保存退出后需要重新检测分区挂载情况,如果/dev/vdb1又被挂载上去就需要重新卸载该分区
root@zstest:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev .9G .9G % /dev
tmpfs .6G 3.2M .6G % /run
/dev/vda1 50G .7G 41G % /
tmpfs .9G .9G % /dev/shm
tmpfs 5.0M 5.0M % /run/lock
tmpfs .9G .9G % /sys/fs/cgroup
tmpfs .6G .6G % /run/user/
/dev/vdb1 50G 52M 47G % /data
root@zstest:~# umount /dev/vdb1
root@zstest:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev .9G .9G % /dev
tmpfs .6G 3.2M .6G % /run
/dev/vda1 50G .7G 41G % /
tmpfs .9G .9G % /dev/shm
tmpfs 5.0M 5.0M % /run/lock
tmpfs .9G .9G % /sys/fs/cgroup
tmpfs .6G .6G % /run/user/
4.3.重新读取分区表信息
1)检查文件系统
e2fsck -f /dev/vdb1
2)变更文件系统大小
resize2fs /dev/vdb1
注意:
使用 e2fsck 时,由于系统需要检查并订正文件系统元数据,所以速度较慢、耗时较长,请耐心等待。
正确使用 e2fsck 和 resize2fs 指令,不会造成原有数据丢失。
root@zstest:~# e2fsck -f /dev/vdb1
e2fsck 1.42. (-May-)
Pass : Checking inodes, blocks, and sizes
Pass : Checking directory structure
Pass : Checking directory connectivity
Pass : Checking reference counts
Pass : Checking group summary information
/dev/vdb1: / files (0.0% non-contiguous), / blocks root@zstest:~# resize2fs /dev/vdb1
resize2fs 1.42. (-May-)
Resizing the filesystem on /dev/vdb1 to (4k) blocks.
The filesystem on /dev/vdb1 is now (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 .9G .9G % /dev
tmpfs .6G 3.2M .6G % /run
/dev/vda1 50G .7G 41G % /
tmpfs .9G .9G % /dev/shm
tmpfs 5.0M 5.0M % /run/lock
tmpfs .9G .9G % /sys/fs/cgroup
tmpfs .6G .6G % /run/user/
/dev/vdb1 59G 52M 56G % /data
5.2.配置开机器自动挂载分区
vim /etc/fstab
root@zstest:/data# vim /etc/fstab
......
/dev/vdb1 /data ext4 defaults
6.重启系统进行验证
检查文件,确认磁盘扩容成功
root@zstest:~# tree /data/
/data/
├── lost+found
└── test
├──
└── .txt
注意:
虽然操作是无损扩容,但是为防止无操作造成的损失,最好提前做好数据备份,或做快照
阿里云提示的注意事项:
1.磁盘扩容功能只能扩容数据盘,不能扩容系统盘或本地盘(本地 SSD 盘等)。
2.挂载在实例上的数据盘,只有当实例处于 运行中 (Running) 或 已停止 (Stopped) 状态时才可以扩容。
无论数据盘的状态是 待挂载 还是 使用中,都可以执行磁盘扩容操作。
3.扩容这种数据盘需要在控制台上重启实例后才能使扩容后的容量生效,而重启实例会停止实例,中断您的业务,所以请您谨慎操作。
4.建议在扩容数据盘之前手动创建快照,以备份数据。
5.如果数据盘正在创建快照,则不允许执行扩容数据盘的操作。
6.包年包月实例如果做过 续费降配 操作,当前计费周期的剩余时间内,实例上的包年包月云盘不支持扩容磁盘操作。
经验分享:
1.重新分区(创建分区表)并不会删除磁盘分区的数据,格式化则会删除,
2.分区类型及个数最好不要调整
完毕,呵呵呵呵
Linux磁盘分区扩容的更多相关文章
- linux根分区扩容
Linux 根分区扩容 1.fdisk –l (红线部分为新添加的硬盘) 2.磁盘格式化 3. mkfs.ext3 -T largefile /dev/sde(格式化上面的分区) 4. vgdisp ...
- Linux磁盘空间扩容(LVM)
Linux磁盘空间扩容(lvm) 随着系统的运行时间增长,业务数据的增长,原有磁盘的空间会存在空间不足情况,导致系统不能正常运行,或者系统管理员磁盘没有完全划完,根据使用者的需求自行划分.那么怎么才能 ...
- linux磁盘分区模式
linux磁盘分区模式 模式一:MBR 1)主分区不超过四个 2)单个分区容量最大2TB 模式二:GPT 1)主分区个数"几乎"没有限制(原因:在GPT的分区表中最多可以支持128 ...
- <实训|第七天>横扫Linux磁盘分区、软件安装障碍附制作软件仓库
期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到 ...
- 调整Linux磁盘分区的大小的方法
昨天数据入库时,一直报错,说磁盘满了,,df -h 一看,发现/目录下只有50G空间,已使用49G:我的程序和dbss都安装在/目录下,ftp到的数据放在/data下的一个子目录下,分解完的 ...
- Linux磁盘分区与格式化
磁盘分区格式说明 linux分区不同于windows linux下分区标示: 例如:hda1 hd这两个字母表示分区所在的设备类型,hd标示IDE类型硬盘,sd表示SCSI类型硬盘 第三字母a标示硬盘 ...
- Linux fdisk命令参数及用法详解---Linux磁盘分区管理命令fdisk
fdisk 命令 linux磁盘分区管理 用途:观察硬盘之实体使用情形与分割硬盘用. 使用方法: 一.在 console 上输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形. 二.在 ...
- Linux 磁盘分区修改与管理
--Linux 磁盘分区修改与管理 -----------------------------2014/03/05 1. 目的,将磁盘卷/dev/cciss/c0d0p8修改成新的用途. 原: /de ...
- Linux 磁盘分区方案简析
Linux 磁盘分区方案简析 by:授客 QQ:1033553122 磁盘分区 任何硬盘在使用前都要进行分区.硬盘的分区有两种类型:主分区和扩展分区.一个硬盘上最多只能有4个主分区,其中一个主分区 ...
随机推荐
- Docker Compose 入门使用指南
Compose is a tool for defining and running multi-container Docker applications. With Compose, you us ...
- PAT 1065 A+B and C[大数运算][溢出]
1065 A+B and C (64bit)(20 分) Given three integers A, B and C in [−263,263], you are supposed t ...
- Deep Learning(2)
二.Deep Learning的基本思想和方法 实际生活中,人们为了解决一个问题,如对象的分类(对象可是是文档.图像等),首先必须做的事情是如何来表达一个对象,即必须抽取一些特征来表示一个对象,如文本 ...
- python 利用爬虫获取页面上下拉框里的所有国家
前段时间,领导说列一下某页面上的所有国家信息,话说这个国家下拉框里的国家有两三百个,是第三方模块导入的,手动从页面拷贝,不切实际,于是想着用爬虫去获取这个国家信息,并保存到文件里. 下面是具体的代码, ...
- YTD易出现断层问题,请注意!
declare @table table( company_id int ,--公司编号 quarter_num ),--季度 disti ),--分销商 num int --数量 ) insert ...
- 报错org.openqa.selenium.WebDriverException: disconnected: unable to connect to renderer解决方法
做自动化时经常会遇到不兼容的问题,比如以下简单的脚本,主要是打开浏览器,然后最大化窗口,打开百度,输入内容搜索,代码如下: package com.gs.selenium; import org.op ...
- Core Java 6
p277~p279: 1.使用解耦合的 try/catch 和 try/finally 语句块可以提高代码的清晰度,并且会报告 finally 子句中出现的错误. 2.假设利用 return 语句从 ...
- python3的一些练习题
下面是最近写的一些python3版本的一些练习题: 1.4+44+444+4444+.....+=? root@wadeson:~/study_for_python/homework# cat aa. ...
- 学习java的一点体会
在这几天的做实验.读书.写笔记的过程中我发现一个问题,就是我的知识面太窄,就比如说,学的知识都是一块一块的,没有能力去把它串起来,虽然学的很快,也写笔记总结,但马上就忘了,我想java是一个体系,需要 ...
- IC行业
定位IC行业,其实很简单. 我不是IC数据统计的专家,但是可以看出IC行业的发展: 在20年前,毛利是1000%,行业增长在每年20%以上 在10年前,毛利是200%,行业增长在每年10%以上 在现在 ...