1、创建两个文件,一个是data.img,一个是meta.data.img:
dd if=/dev/zero of=/tmp/data.img bs=1K count=1 seek=10M
dd if=/dev/zero of=/tmp/meta.data.img bs=1K count=1 seek=1G
2、上述两个文件创建一个回环设备
losetup /dev/loop2016 /tmp/meta.data.img
losetup /dev/loop2016 /tmp/meta.data.img
3、使用上述两个回环设备创建thin pool
dmsetup create test-thin-pool \
--table "0 20971522 thin-pool /dev/loop2016 /dev/loop2015 \
128 65536 1 skip_block_zeroing"
4、为上述thinpool创建卷
dmsetup message /dev/mapper/test-thin-pool 0 "create_thin 0"
dmsetup create test-thin-volumn-001 \
--table "0 2097152 thin /dev/mapper/test-thin-pool 0"
5、将卷格式化为ext4格式
mkfs.ext4 /dev/mapper/test-thin-volumn-001
6、挂载卷
mkdir -p /mnt/base
mount /dev/mapper/test-thin-volumn-001 /mnt/base
7、创建基本文件
echo "hello world, I am a base" > /mnt/base/id.txt
8、创建快照
dmsetup message /dev/mapper/test-thin-pool 0 "create_snap 1 0"
dmsetup create mysnap1 \
--table "0 2097152 thin /dev/mapper/test-thin-pool 1"
9、挂载快照
mkdir -p /mnt/mysnap1
mount /dev/mapper/mysnap1 /mnt/mysnap1
10、测试
1)修改快照中的文件,原文件未被修改
echo "I am snap1" >> /mnt/mysnap1/id.txt