Linux 磁盘分区
前言
在购买云服务器的时候,“数据盘”这个词汇对我们来说通常并不陌生。
来自 云骏数据
作为一个少有的对我们这些穷人来说看得见摸得着的选项,数据盘是一个值得我们去了解、学习、使用的东西。将系统盘与数据盘分离,也是很多云计算解决方案都在做的事。
正如其意,“数据盘”即为在服务器上主要负责存储数据信息的磁盘。通常在使用云计算服务时,我们都会将系统盘和数据盘分离,以此使得我们在更换系统环境、迁移数据、更换服务器型号的时候更为方便。同时,将系统应用与软件、数据分离,也可以使得系统不会因为流量高峰占用磁盘带宽时出现卡死等问题。
我司 云骏数据 便在多个服务器产品提供了数据盘选项。
初始化
系统盘通常预装系统,无需用户二次配置。数据盘由于其可迁移等特性,云服务商几乎不会提前为其预制相关配置。也就是说,* 在购买带有数据盘的云服务器后,我们需要自行将其挂载到系统并进行相关配置才可使用*。
检查
首先我们要查看当前的挂在情况已确认我们是否需要进行数据盘挂载操作。
# 查看文件系统挂载情况
df -h
# 查看磁盘信息
fdisk -l
如上,/dev/vda
是我的系统盘,而 /dev/vdb
是我的数据盘。我的数据盘并未出现在 df -h
命令的返回结果中,因此我可以判定其并未被挂载。
分区
在挂载磁盘之前,我们需要为磁盘进行分区操作。
fdisk /dev/vdb
输入后我们会进入一段 fdisk 交互:
- 输入 m ,获取完整列表。
- 输入 n ,准备新建分区。
- 直接 Enter ,选择默认值 primary ,进入下一段。
- 直接 Enter ,选择默认值,进入下一段。
- 直接 Enter ,选择默认值,进入下一段。
- 输入 p ,查看分区情况,如果在对应磁盘部分(例如
/dev/vdb
)出现分区信息即为成功。 - 输入 w ,保存分区表。
交互过程
确定文件系统类型
通常情况下,Linux 系统中我们常用的文件系统类型大致如下:
- EXT4[ref]参考资料:https://en.wikipedia.org/wiki/Ext4 [/ref]:第四代扩展文件系统,最多支持1EB的文件系统和16TB的文件,支持连续写入可减少文件碎片。较好的兼容性(Linux / Windows / MacOS) ,多用于移动设备与扩展磁盘。
NFS[ref]参考资料:https://en.wikipedia.org/wiki/Network_File_System [/ref]:网络文件系统,是一种分布式文件系统,多适用于内网连接的云硬盘和存储阵列等。
- XFS[ref]参考资料:https://en.wikipedia.org/wiki/XFS [/ref]:高性能的日志文件系统,擅长处理大文件,同时提供平滑的数据传输。
在示例中,我们使用XFS文件系统(示例机器为物理机,不使用存储阵列存储,不具备迁移条件)。
mkfs.xfs -f /dev/vdb # 对于 XFS 文件系统
mkfs.nfs -f /dev/vdb # 对于 NFS 文件系统
mkfs.ext4 -f /dev/vdb # 对于 EXT4 文件系统
配置文件系统
临时挂载
在示例中,我们要将 /dev/vdb
磁盘挂载到 /mnt
目录中。
注意,被挂载的目录中,所有内容都会被覆盖!且在服务器重启后需要重新挂载。
sudo rm -rf /mnt
sudo mkdir /mnt
sudo mount /dev/vdb /mnt
df -h
挂载磁盘
此时 df -h
的结果显示,磁盘已经被成功挂载。
永久挂载
通过修改 /etc/fstab
,我们可以实现在服务器重启后仍可直接使用的永久挂载。
#
# /etc/fstab
# Created by anaconda on Mon Jun 10 14:18:53 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=8223c1d3-9644-4885-80b9-f24158ea6013 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/vdb/wwwxfsdefaults0 0
我们只需依照格式添加即可:<磁盘> <挂载点> <文件系统类型> defaults 0 0
迁移
由于数据盘的特性,其整体迁移是较为方便的。
例如,我们要将原有磁盘 /dev/vda
的目录 /data
迁移到磁盘 /dev/vdb
:
- 将磁盘
/dev/vdb
挂载到/mnt
目录下。 - 将
/data
目录下所有正在运行的服务关闭。 - 将
/data
目录下所有内容拷贝到/mnt
。 - 使用
rm -rf /data
删除空目录,并使用mkdir /data
创建挂载点目录。 - 使用
sudo umount /mnt
去除挂载,此时磁盘内存有数据。 - 直接使用
sudo mount /dev/vdb /data
挂载磁盘(无需重新初始化磁盘)。 - 此时,
/data
内数据完好。可使用df -h
命令查看挂载情况。