服务器系统盘和数据盘分离,故障保护方案
服务器系统盘与数据盘分离,是提升故障保护能力的基础操作。
把操作系统和业务数据放在不同物理磁盘上,系统盘故障时数据盘仍可挂载到新服务器恢复,同时避免系统日志或临时文件写满磁盘导致业务中断。
本文将手把手教你从识别磁盘到完成挂载,并验证分离效果。
一、分离前需要确认的环境信息
首先登录服务器,确认当前磁盘布局。
执行 lsblk 查看块设备列表,输出会显示磁盘名称、大小和挂载点。
lsblk
如果看到类似 vda 或 sda 的系统盘,以及额外的 vdb 或 sdb 数据盘,说明硬件已就绪。
若只有一块盘,需要先在云控制台或物理机上添加新磁盘。
接着查看分区情况:
fdisk -l
重点关注数据盘是否有分区。
未分区的新盘会显示类似 /dev/vdb 无分区信息。
二、给数据盘分区并格式化
假设数据盘为 /dev/vdb,使用 fdisk 创建分区。
fdisk /dev/vdb
依次输入 n 新建分区,p 选择主分区,分区号默认 1,起始扇区回车,结束扇区回车使用全部空间,最后 w 保存。
分区完成后,格式化文件系统。
推荐使用 ext4 或 xfs,以下以 ext4 为例:
mkfs.ext4 /dev/vdb1
注意:格式化会清空数据盘所有数据,请确保盘内无重要文件。
三、挂载数据盘并设置开机自动挂载
创建挂载点,例如 /data:
mkdir /data
临时挂载并验证:
mount /dev/vdb1 /data
df -h
确认 /data 已显示为独立磁盘。
为了实现开机自动挂载,需要编辑 /etc/fstab。
先获取分区的 UUID:
blkid /dev/vdb1
复制 UUID 值,在 /etc/fstab 末尾添加一行:
UUID=你的UUID /data ext4 defaults 0 0
保存后执行 mount -a 测试,无报错则配置正确。
四、迁移业务数据到数据盘
如果系统盘已有业务数据,需要迁移到 /data。
以网站目录 /var/www 为例:
rsync -av /var/www/ /data/www/
迁移后,修改应用配置指向新路径,或使用软链接:
mv /var/www /var/www_bak
ln -s /data/www /var/www
重启应用服务,检查数据是否正常读写。
五、故障保护验证与常见问题
完成分离后,可以通过模拟系统盘故障来验证保护效果。
在云服务器中,可以尝试卸载系统盘再挂载到另一台服务器,观察数据盘是否可独立挂载。
需要注意的避坑点:
- 不要直接格式化已含数据的分区,操作前用
lsblk和df -h双重确认。 /etc/fstab中的 UUID 必须准确,写错会导致系统无法启动。建议修改前备份该文件。- 数据盘挂载后,确保应用有写入权限,必要时执行
chown -R 用户:组 /data。 - 定期用
df -h检查磁盘使用率,避免数据盘写满影响业务。
六、常见疑问
问:系统盘和数据盘必须物理分离吗?
是的,物理分离才能在一盘故障时另一盘不受影响。
同一块物理盘划分多个分区,无法提供硬件级故障保护。
问:云服务器如何添加数据盘?
在云厂商控制台创建云硬盘并挂载到实例,然后按本文步骤分区格式化。
不同平台操作路径略有差异,请以控制台实际显示为准。
问:迁移数据后原系统盘空间可以释放吗?
可以,确认数据盘运行稳定后,删除系统盘上的旧数据目录即可释放空间,但建议保留备份一段时间。
按照以上步骤操作,你就能完成服务器系统盘与数据盘的分离,并建立起基础的故障保护机制。
如果遇到挂载失败或权限报错,优先检查 /etc/fstab 和目录权限。