Overlay文件系统测试主要验证挂载正确性、读写功能及数据一致性,以下是具体操作流程:
创建lowerdir(底层只读层)、upperdir(上层可写层)、workdir(Overlay内部工作目录)和merged(合并视图挂载点):
mkdir -p /mnt/overlay/{lower,upper,work,merged}
向lowerdir写入初始文件,用于验证Overlay是否能正确读取底层数据:
echo "This is a test file in the lower directory" > /mnt/overlay/lower/testfile.txt
使用mount命令将Overlay文件系统挂载到merged目录,指定lowerdir、upperdir和workdir参数:
sudo mount -t overlay overlay -o lowerdir=/mnt/overlay/lower,upperdir=/mnt/overlay/upper,workdir=/mnt/overlay/work /mnt/overlay/merged
检查merged目录是否包含底层文件,确认挂载成功:
ls -l /mnt/overlay/merged
# 应能看到lowerdir中的testfile.txt
向merged目录修改文件(修改会同步到upperdir),验证写功能;读取文件验证读功能:
# 写入测试:向merged目录的文件添加内容(实际写入upperdir)
echo "Hello, Overlay!" > /mnt/overlay/merged/testfile.txt
# 读取测试:确认修改后的内容
cat /mnt/overlay/merged/testfile.txt
# 应输出:Hello, Overlay!
修改文件后,检查upperdir是否同步了变更,确认数据一致性:
cat /mnt/overlay/upper/testfile.txt
# 应输出:Hello, Overlay!
测试完成后,卸载Overlay文件系统并清理测试目录:
sudo umount /mnt/overlay/merged
rm -rf /mnt/overlay
若测试的是Overlay网络(如Docker Overlay网络),需验证容器连通性和网络配置:
创建Overlay网络并检查其状态:
# 创建Overlay网络(需在Swarm模式下)
docker network create --driver overlay --attachable my-overlay-network
# 查看网络列表,确认网络已创建
docker network ls
# 应能看到my-overlay-network
在不同节点启动容器,连接到Overlay网络:
# 在节点1启动容器1
docker run -dit --name container1 --network my-overlay-network nginx
# 在节点2启动容器2
docker run -dit --name container2 --network my-overlay-network nginx
进入容器1,ping容器2的IP或名称,验证网络连通性:
# 进入容器1
docker exec -it container1 /bin/bash
# 获取容器2的IP(或在同一Swarm中直接使用容器名称)
ping <container2_ip> # 或 ping container2
# 应能正常ping通
使用docker network inspect查看网络配置,确认容器已正确加入:
docker network inspect my-overlay-network
# 在输出中应能看到container1和container2的IP地址
若连通性失败,可通过以下命令排查:
ip link showping <VTEP_IP>systemctl status firewalld(临时关闭防火墙测试)journalctl -u docker.service