在使用云服务器的过程中,由于数据的不断累积所以最好不要将数据放在系统盘中,而是放在数据盘中,这样方便添加和扩容。那么如何添加和删除数据盘?
挂载数据盘
在平台上购买一个数据盘后,还需要在系统中挂载。
列出磁盘
fdisk -lu
这个命令可以列出当前的所有磁盘
创建分区
如果磁盘未创建分区,则需要先创建分区。
输入fdisk /dev/vdb
命令,然后依次根据提示,输入n,p,1,回车,回车,wq,保存退出即创建分区成功。
/dev/vdb是由执行fdisk -lu
命令查询到的,即要加载的数据盘在操作系统内核中的名称。
创建文件系统(即格式化)
如果磁盘未格式化,则需要先格式化。
mkfs.ext4 /dev/vdb1
dev/vdb1就是第2步创建的分区。这样就可以对磁盘进行格式化。
将文件系统挂载到操作系统的目录上
终端执行如下命令挂载:
mount /dev/vdb1 /opt/data/data1
/opt/data/data1就是挂载的目录。以后进入这个目录就可以看到磁盘内容。
设置开机后自动挂载
如果想开机后自动挂载,就需要在/etc/fstab中配置,如:
UUID=d1bdc014-7d45-48fc-851b-48b167dc1726 /opt/data/data1 ext4 defaults 0 0
这里使用UUID的方式,UUID的获取后面会说。
在/etc/fstab配置文件中可以以三种方法表示文件系统:内核名称、UUID 或者 label。
使用 UUID 或 label 的好处在于它们与磁盘顺序无关。如果你在 BIOS 中改变了你的存储设备顺序,或是重新拔插了存储设备,或是因为一些 BIOS 可能会随机地改变存储设备的顺序,从而导致设备名变动。释放云盘也是如此。那么用 UUID 或 label 来表示将更可靠。所有分区和设备都有唯一的 UUID,它们由文件系统生成工具 (mkfs.*) 在创建文件系统时生成的。所以在/etc/fstab中使用全局唯一标识符UUID来引用新分区。
root用户可以直接使用如下命令配置
echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /opt/data/data1 ext4 defaults 0 0 >> /etc/fstab
通过lsblk -f
命令可以列出文件系统块设备,能显示设备的 UUID 值。如下:
NAME | FSTYPE LABEL UUID | MOUNTPOINT |
---|---|---|
vda | ||
`-vda1 | ext4 | 80b9b662-0a1d-4e84-b07b-c1bf19e72d97 / |
vdb1 | ext4 | b26371e2-41c8-47de-a3cf-570c106fb2a6 /opt/data/data2 |
完成查看分区
df -Th
完成后通过该命令就可以看到所有分区,知道数据盘是否挂载成功。
释放数据盘
当数据盘不想用了,就需要释放并销毁数据盘。但是在平台上操作前,需要先在服务器中卸载数据盘。
删除数据
首先需要删除数据(当然如果要保留数据,先进行备份)
rm -f /opt/data/data1/*
查看占用
然后查看是否有该磁盘的进程
fuser -vm /dev/vdb1
如果有通过PID来结束进程
kill -9 22564
如果退出来重新登录即可
卸载
执行卸载命令
unmount /dev/vdb1
卸载完通过df -Th
命令来查看是否卸载成功
删除fstab记录
一般希望开机自动挂载,所以在/etc/fstab中配置一下该磁盘。那么在卸载该磁盘后则需要删除这一条记录。否则重启服务器的时候还有该记录的话,但是没有该磁盘就会出现问题(导致该云服务器的公网IP无法ping通,一直超时,导致网站无法访问)。
删除后可以使用cat命令查看确认一下。
释放磁盘
做好上面的步骤后就可以在阿里云平台上释放销毁该磁盘即可。