Appearance
数据盘挂载与 /data 数据迁移(安全版)
适用场景:新增一块数据盘,并将现有 /data 迁移到新盘(不直接删除源数据,保留回滚路径)。
前置检查(必做)
在动手前,先确认硬盘状态,避免操作错设备:
bash
# 1. 确认新数据盘设备名(示例:/dev/vdb)存在且未挂载
lsblk -f
findmnt /data
# 2. 确认当前 /data 占用(确保数据量不超过新盘容量)
du -sh /data第一步:格式化新硬盘(如已格式化可跳过)
确认无重要数据后执行(会清空新盘所有数据,示例设备:/dev/vdb):
bash
mkfs.ext4 /dev/vdb第二步:临时挂载并全量同步数据
bash
# 1. 创建临时挂载点并挂载
mkdir -p /mnt/newdata
mount /dev/vdb /mnt/newdata
# 2. 全量同步(保持权限,不删除源数据)
rsync -avP /data/ /mnt/newdata/
# 3. 验证数据一致性(对比文件数)
find /data -type f | wc -l
find /mnt/newdata -type f | wc -l第三步:配置开机自动挂载(fstab)
bash
# 1. 获取新硬盘的 UUID(更稳定)
blkid /dev/vdb
# 2. 备份并编辑 fstab
cp /etc/fstab /etc/fstab.backup
vim /etc/fstab在文件末尾添加一行(UUID 替换为实际值):
text
UUID=5e1a8d7b-1234-5678-90ab-cdef12345678 /data ext4 defaults 0 2第四步:正式切换(关键步骤)
bash
# 1. 停止所有依赖 /data 的服务(按实际情况补充)
systemctl stop mongod
systemctl stop mysql
# 2. 重命名原目录(留一条退路)
mv /data /data.old
# 3. 创建新目录并挂载
mkdir /data
mount /dev/vdb /data
# 4. 重启服务
systemctl start mongod
systemctl start mysql第五步:验证与收尾
bash
# 1. 检查挂载是否成功
df -h | grep /data
# 2. 检查服务状态
systemctl status mongod
systemctl status mysql确认业务正常后,再删除旧数据(谨慎):
bash
rm -rf /data.old