发现问题
事情是这样的,我们开发的项目部署的阿里云服务器上有存放数据库备份数据的一个目录,通过公司的备份软件自动将目录备份到公司内部的服务器,备份软件要求被备份的服务器也就是那台阿里云服务器要有至少5G的空余磁盘容量,运维找我说服务器容量不够了,我就去服务器上看了下信息,开始我的排查之旅。
连接到阿里云服务器,运行命令查看磁盘容量
df -h
df -h
发现磁盘怎么就40G,生产服务器不科学啊,我就取阿里云控制台看了下云盘配置,果然……。
阿里云控制台云盘列表
在阿里云控制台的服务器云盘列表可以看到一个1024G的云盘和一个40G的系统盘。
1024G云盘的设备名: /dev/xvdb
40G云盘的设备名: /dev/xvda
云盘列表
两个云盘都在使用中的状态,说明已经挂载成功了,服务器内df -h命令没看到1024G的那个云盘说明该云盘虽然挂载成功了但是没有进行分区(阿里云官方看的文档)。
挂载成功后还需要分区
我们是linux并且小于2T容量所以我们点开第一行的那个Linux格式化数据盘的文档,下面根据阿里云的文档进行操作 https://help.aliyun.com/document_detail/25426.html?spm=a2c4g.11186623.2.20.5b7744e6enLxry#concept-jl1-qzd-wdb
新建分区操作步骤
1.远程到服务器控制台通过以下命令查看云盘挂载信息:
fdisk -l
查看云盘挂载信息
其中40G的云盘已经在使用。执行命令后,如果不存在/dev/vdb,表示您的实例没有数据盘。确认数据盘是否已挂载。
2.创建分区(控制台输出在最后有列出来)
2.1 运行fdisk -u /dev/vdb命令分区数据盘。
fdisk -u /dev/vdb
2.2 输入 p 查看数据盘的分区情况。
p
2.3 输入 n 创建一个新分区。(应该是new的缩写)
n
2.4 输入 p 选择分区类型为主分区,我还纠结了一下,我还纠结了下我新增的数据盘是主分区和逻辑分区,后面看到文档上面“ 云服务器ECS仅支持数据盘分区操作,不支持系统盘分区操作”,我就大胆选择了输入p主分区。
p
说明 创建一个单分区数据盘可以只创建主分区。如果要创建四个以上分区,您应该至少选择一次e(extended),创建至少一个扩展分区。
2.5 输入分区编号并按回车键。本示例中,仅创建一个分区,输入1。
1
2.6 输入第一个可用的扇区编号,按回车键采用默认值2048。
回车键
2.7 输入最后一个扇区编号。本示例中,仅创建一个分区,按回车键采用默认值。
回车键
2.8 输入 p 查看该数据盘的规划分区情况。
p
2.9 输入w开始分区,并在完成分区后退出。
w
控制台完整输出
[root@xxx~]# fdisk -u /dev/vdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x3608d51f.
Command (m for help): p
Disk /dev/vdb: 1 TiB, 1099511627776 bytes, 2147483648 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: 0x3608d51f
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): 1
First sector (2048-2147483647, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-2147483647, default 2147483647):
Created a new partition 1 of type 'Linux' and of size 1024 GiB.
Command (m for help): p
Disk /dev/vdb: 1 TiB, 1099511627776 bytes, 2147483648 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: 0x3608d51f
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 2147483647 2147481600 1024G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
3. 运行fdisk -lu /dev/vdb命令查看新分区。
如果出现/dev/vdb1的相关信息,表示新分区已创建完成。
fdisk -lu /dev/vdb
查看新分区
4. 在新分区上创建一个文件系统。
根据您的需求运行以下任一命令,创建文件系统。
创建一个ext4文件系统。
mkfs -t ext4 /dev/vdb1
创建一个xfs文件系统。
mkfs -t xfs /dev/vdb1
如果您需要在Linux、Windows和Mac系统之间共享文件,可以运行mkfs -t vfat /dev/vdb1命令创建VFAT文件系统。因为我的系统盘原先是 xfs的,所以我也创建成xfs文件系统了。
可以通过cat /etc/fstab命令查看原先的盘的文件系统类型
cat /etc/fstab
UUID那行对应的xfs就是你原先的盘对应的文件系统类型了。
5. 向/etc/fstab写入新分区信息,启动开机自动挂载分区。
5.1运行命令cp /etc/fstab /etc/fstab.bak,备份etc/fstab。这步不是必须的,防止你改错找不到原先的文件而已。
cp /etc/fstab /etc/fstab.bak
5.2 运行命令 向/etc/fstab里写入新分区信息。当然你也可以直接用vi命令把内容输入到/etc/fstab文件里。
echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\\"//g'` /mnt xfs defaults 0 0 >> /etc/fstab
注意这里的xfs,如果你是而ext4的就改成ext4,/mnt 目录也是可以改的,代表你分区的目录。
运行cat /etc/fstab命令查看/etc/fstab中的新分区信息。
写入新分区信息
最后面那行就是我新加的。
6. 运行mount /dev/vdb1 /mnt命令挂载文件系统。
如果运行df -h命令后出现新建文件系统的信息,表示文件系统挂载成功。
mount /dev/vdb1 /mnt
df -h
会看到其中有一条信息如下,就是我那个1024G的云盘的分区了。
/dev/vdb1 1.0T 7.2G 1017G 1% /mnt
分区这样就都弄好了,把服务器上之前过大的文件换到/mnt的目录下,让公司运维明天备份我这个目录下需要备份的目录就可以了。
评论前必须登录!
注册