Overlay文件系统(OverlayFS)是CentOS中常用的联合文件系统,广泛应用于Docker容器、容器化应用等场景。其核心结构由lowerdir(底层只读目录,存储基础数据)、upperdir(上层可写目录,存储修改数据)、**workdir(工作目录,OverlayFS内部临时使用)**组成。迁移Overlay数据时,需确保这三层目录及挂载配置的完整性。
systemctl stop docker
mount命令查看当前Overlay挂载信息,获取lowerdir、upperdir、workdir的路径。例如:mount | grep overlay
# 输出示例:overlay on /var/lib/docker/overlay2/... type overlay (lowerdir=/var/lib/docker/overlay2/lower,upperdir=/var/lib/docker/overlay2/upper,workdir=/var/lib/docker/overlay2/work)
lowerdir、upperdir、workdir),防止意外丢失。使用rsync或tar工具复制lowerdir、upperdir、workdir到目标位置。rsync适合增量复制,tar适合完整打包。
# 复制lowerdir(基础数据)
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*"} /var/lib/docker/overlay2/lower/ /new/path/overlay/lower/
# 复制upperdir(修改数据)
rsync -aAXv /var/lib/docker/overlay2/upper/ /new/path/overlay/upper/
# 复制workdir(工作目录)
rsync -aAXv /var/lib/docker/overlay2/work/ /new/path/overlay/work/
参数说明:-a(归档模式,保留权限、时间戳等)、-A(保留ACL)、-X(保留扩展属性)、-v(显示详细过程)。
# 打包lowerdir
tar -czvf lowerdir.tar.gz -C /var/lib/docker/overlay2/lower .
# 打包upperdir
tar -czvf upperdir.tar.gz -C /var/lib/docker/overlay2/upper .
# 打包workdir
tar -czvf workdir.tar.gz -C /var/lib/docker/overlay2/work .
传输到目标位置后解包:
tar -xzvf lowerdir.tar.gz -C /new/path/overlay/lower/
tar -xzvf upperdir.tar.gz -C /new/path/overlay/upper/
tar -xzvf workdir.tar.gz -C /new/path/overlay/work/
迁移完成后,需更新Overlay的挂载配置,指向新的目录路径。
编辑/etc/fstab,将原挂载配置中的lowerdir、upperdir、workdir路径替换为新路径。例如:
vim /etc/fstab
添加或修改以下内容(根据实际情况调整路径):
overlay /mnt/overlay overlay defaults,lowerdir=/new/path/overlay/lower,upperdir=/new/path/overlay/upper,workdir=/new/path/overlay/work 0 0
若无需重启系统,可直接使用mount命令挂载:
umount /mnt/overlay # 先卸载原挂载点
mount -t overlay overlay -o lowerdir=/new/path/overlay/lower,upperdir=/new/path/overlay/upper,workdir=/new/path/overlay/work /mnt/overlay
df -h查看/mnt/overlay是否成功挂载。/mnt/overlay,检查文件和目录是否存在,内容是否与原目录一致。例如:ls -l /mnt/overlay
cat /mnt/overlay/testfile # 检查文件内容
LVM快照等技术确保数据一致性。rsync -a),确保新位置的文件和目录权限与原位置一致。chcon -R system_u:object_r:container_file_t:s0 /new/path/overlay/lower/
chcon -R system_u:object_r:container_file_t:s0 /new/path/overlay/upper/
chcon -R system_u:object_r:container_file_t:s0 /new/path/overlay/work/
通过以上步骤,可实现CentOS Overlay数据的完整迁移。迁移后需定期备份数据,确保数据安全。