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数据的完整迁移。迁移后需定期备份数据,确保数据安全。