linux服务器系列数据盘挂载并迁移旧数据,无停机切换。

179 阅读2分钟

先执行看

lsblk

image.png

如果磁盘空间不足,并且你希望先将现有的 /data 数据复制到一个新挂载的磁盘(暂时挂载为 /data_db),再卸载原来的 /data,并最终将新的磁盘挂载为 /data,可以按照以下步骤操作:

准备新磁盘并挂载为 /data_db 假设你已经有一个新磁盘(如 /dev/vdb)我这里是vdb类型,我们先将它挂载到 /data_db。 格式化新磁盘(如果需要):

sudo mkfs.ext4 /dev/vdb  或者  sudo mkfs.xfs /dev/vdb

创建挂载点:

sudo mkdir /data_db

挂载新磁盘到 /data_db:

sudo mount /dev/vdb /data_db

2. 复制 /data 数据到 /data_db
将 /data 中的数据复制到新磁盘挂载的 /data_db 目录。 使用 rsync 复制数据:

sudo rsync -av --progress /data/ /data_db/

这将把所有 /data 目录下的文件复制到 /data_db,并保留文件的权限和属性。
3. 卸载原有磁盘
假设原有 /data 磁盘已经没有足够空间,接下来你可以卸载原有的磁盘。
确认 /data 没有被其他进程使用:

lsof +D /data

卸载 /data 磁盘:

sudo umount /data

4. 挂载新磁盘为 /data
在此步骤之前,确保新磁盘(原先挂载到 /data_db 的磁盘)可以挂载到 /data。
卸载 /data_db:

sudo umount /data_db

修改 /etc/fstab,以确保新磁盘能够在系统启动时挂载到 /data。

sudo vi /etc/fstab

添加一行来指定新的挂载配置(假设新磁盘是 /dev/vdb):

/dev/vdb /data ext4 defaults 0 2

保存并退出。
挂载新磁盘到 /data:

sudo mount /dev/vdb /data

5. 验证挂载
使用以下命令验证新磁盘是否正确挂载到 /data:

df -h /data

6. 确认数据完整性
确保所有的数据从 /data_db 复制到 /data 后没有丢失。可以再次检查 /data 目录中的文件是否完整。
如果一切正常,你可以删除 /data_db 目录中的数据,或者选择保留它作为备份。

sudo rm -rf /data_db/*

或者,如果不再需要 /data_db,你可以完全删除它:

sudo rmdir /data_db