linux添加新硬盘挂载分区和数据迁移

linux添加新硬盘挂载分区和数据迁移

添加硬盘和挂载分区

开始前,停止所有与迁移数据目录相关的服务和容器

bash 复制代码
systemctl stop nginx
systemctl stop docker
# 关闭自启动,防止重启后有新的请求进入到服务
systemctl disable nginx
systemctl disable docker
  1. 查看现有分区
bash 复制代码
lsblk

看出这里只有一个系统盘vda(虚拟环境的系统都是以vdX命名,例如云服务器,物理设备是以sdX命名)

bash 复制代码
# 查看硬盘是ssd还是hdd,rota为1表示可旋转的hdd,0为ssd
lsblk -d -o name,rota
# 或者
cat /sys/block/vda/queue/rotational
  1. 增加后再次执行lsblk会增加一个类似vdb命名的硬盘
  2. 开始挂载分区
bash 复制代码
# 创建分区
fdisk /dev/vdb
# 在fdisk中: n(新建分区)->p(主分区)->1(分区号)->(默认起始扇区)->(默认结束扇区)->w(保存)

保存之后执行fdisk -l查看新建的分区vdb1

  1. 格式化分区
bash 复制代码
# 高io推荐xfs
mkfs.xfs /dev/vdb1
  1. 开始挂载分区
bash 复制代码
# 新建挂载目录
mkdir /mnt/vdb1
# 临时挂载
mount /dev/vdb1 /mnt/vdb1
# 永久挂载
echo "UUID=$(sudo blkid -s UUID -o value /dev/vdb1) /mnt/vdb1 xfs defaults 0 0" | sudo tee -a /etc/fstab

重启执行lsblk验证

迁移数据

  1. 拷贝数据
bash 复制代码
# 复制数据到新磁盘
rsync -avzh --progress /docker_v/ /mnt/vdb1/docker_v/
# 验证数据完整性,如果无输出,表示完全一致
diff -r /docker_v/ /mnt/vdb1/docker_v/
  1. 重启容器服务
  • 2.1 方式一、使用软连接方式(生产环境优选)
bash 复制代码
# 确保软链接的目标目录权限与原目录一致
chown -R root:root /mnt/vdb1/docker_v
# 重命名原目录(保险操作)
sudo mv /docker_v /docker_v_old
# 创建软连接
ln -sf /mnt/vdb1/docker_v /docker_v

优点

快速无缝迁移:容器无需修改配置,所有路径保持不变

缺点

若软链接被误删或新磁盘挂载失败,或目录权限被更改,Docker 将无法访问数据。

  • 2.2 方式二、修改容器挂载目录方式(建议开发测试环境采用)
  • 修改容器配置,提前记录好每个容器主要参数,如原挂载信息,端口映射,网络模式,镜像版本等(使用docker inspect <容器名>查看,最好保存到文档)
  • 删除容器(不删数据卷)docker rm <容器名>
  • 重新创建容器,将挂载路径改为新目录-v /mnt/vdb1/docker_v/?:/path/in/container(同时留意该容器其他启动参数是否正确)

优点

直接管理数据路径,降低复杂度避免误操作更稳定,灵活性高。

缺点

操作繁琐,需修改容器配置

  1. 测试检查
bash 复制代码
#启动docker容器和相关服务测试有无问题
systemctl start docker
systemctl start nginx
# 无问题,恢复自启动
systemctl enable nginx
systemctl enable docker
相关推荐
徐小黑ACG7 小时前
nginx配置文件
linux·服务器·nginx
新时代牛马7 小时前
Linux VFS 完整篇:从path_openat、dentry/inode 到page cache 与挂载排障
linux·运维·服务器
java_logo7 小时前
Docker 部署 Rocky Linux:轻松搭建 RHEL 兼容企业级基础镜像平台
linux·docker·容器·rocky linux·基础镜像·轩辕镜像·rhel 兼容
拂拉氏8 小时前
【知识讲解】 Linux虚拟地址空间认识
linux·虚拟地址空间
cloudfantasy9 小时前
docker直接二进制安装,非编译。KylinV10SP3 aarch64有效
运维·docker
新时代牛马9 小时前
Linux 驱动中断与定时完整篇:从 request_threaded_irq 到hrtimer 选型与排障
linux·运维·服务器
考虑考虑10 小时前
nginx打印请求日志
运维·后端·nginx
数字补给站11 小时前
Windows 10 + Hyper-V + Terraform + cloud-init:批量产出 3 台 Ubuntu 的实践笔记
运维·ai编程
分支预测失败12 小时前
RISC-V 核间中断 IPI 实战:从 MSIP 寄存器到 IMSIC 消息投递
linux·后端
GeW12 小时前
RHCE考试避坑指南"90%考生容易忽略的细节
linux