LVMファイルシステムスナップショット実測
ファイルシステムのスナップショットは、非常に良いオンラインバックアップ方法です.スナップショットをサポートするファイルシステムは、バックアップに使用するコンテンツが一致するミラーを瞬時に作成できます.Linuxの論理ボリューム管理(LVM)は、スナップショットファイルシステムをサポートするものであり、他にもFreeBSDファイルシステム、ZFSファイルシステムなどがサポートされている.
次に、LVMにおけるsnapshotは、「書き込み時コピー」(copy on write)によって実現される.すなわち、snapshotが作成されると、元のボリュームのデータのメタデータ(meta-data)のみがコピーされる.作成時には、データの物理的コピーがないため、snapshotの作成はほぼリアルタイムであり、元のボリュームに書き込み操作が実行されると、snapshotは元のボリュームブロックの変更を追跡し、このとき元のボリュームに変更するデータは変更前にsnapshotが予約した空間にコピーされ、
つまり、元のボリュームを変更すると、元のデータがスナップショット予約領域にコピーされます.
注意:CoW実装では、snapshotのサイズは元のボリュームと同じ大きさではなく、shapshotの作成から解放までの間、ブロックの変化量がどれだけ大きいかを推定する2つの側面だけを考慮する必要があります.データ更新の頻度.snapshotのスペースに元のボリューム変換の情報がいっぱい記録されると、このsnapshotはすぐに解放され、使用できなくなり、このsnapshotが無効になります(この影響は外部デバイスを抜くようなものです:デバイスから読むバックアップワークはI/Oエラーで失効します)、非常に重要な点は、必ずsnapshotのライフサイクルで、あなたがしなければならないことをやり終えます.
テストを開始します.
前提:lvmスナップショットが存在するvgはバックアップソース(すなわち/dev/vg_group/data 1)と同じである必要があるため、vg_を確認する必要があります.イメージの余剰スペースは、不足すると拡張する必要があります.
4 Mの残りのスペースがまだ残っているのが見えますが、明らかに足りません.スナップショット予約領域のスペースは、元のボリュームの10%であることが一般的に推奨されています.
vgのスペースを大きくする必要があります.
次に、LVMにおけるsnapshotは、「書き込み時コピー」(copy on write)によって実現される.すなわち、snapshotが作成されると、元のボリュームのデータのメタデータ(meta-data)のみがコピーされる.作成時には、データの物理的コピーがないため、snapshotの作成はほぼリアルタイムであり、元のボリュームに書き込み操作が実行されると、snapshotは元のボリュームブロックの変更を追跡し、このとき元のボリュームに変更するデータは変更前にsnapshotが予約した空間にコピーされ、
つまり、元のボリュームを変更すると、元のデータがスナップショット予約領域にコピーされます.
注意:CoW実装では、snapshotのサイズは元のボリュームと同じ大きさではなく、shapshotの作成から解放までの間、ブロックの変化量がどれだけ大きいかを推定する2つの側面だけを考慮する必要があります.データ更新の頻度.snapshotのスペースに元のボリューム変換の情報がいっぱい記録されると、このsnapshotはすぐに解放され、使用できなくなり、このsnapshotが無効になります(この影響は外部デバイスを抜くようなものです:デバイスから読むバックアップワークはI/Oエラーで失効します)、非常に重要な点は、必ずsnapshotのライフサイクルで、あなたがしなければならないことをやり終えます.
テストを開始します.
前提:lvmスナップショットが存在するvgはバックアップソース(すなわち/dev/vg_group/data 1)と同じである必要があるため、vg_を確認する必要があります.イメージの余剰スペースは、不足すると拡張する必要があります.
[root@qht131 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 vg_group lvm2 a-- 1016.00m 0
/dev/sdb1 vg_group lvm2 a-- 1016.00m 4.00m
/dev/sdd1 lvm2 a-- 1019.72m 1019.72m
4 Mの残りのスペースがまだ残っているのが見えますが、明らかに足りません.スナップショット予約領域のスペースは、元のボリュームの10%であることが一般的に推奨されています.
vgのスペースを大きくする必要があります.
[root@qht131 ~]# vgextend vg_group /dev/sdd1
Volume group "vg_group" successfully extended
[root@qht131 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 vg_group lvm2 a-- 1016.00m 0
/dev/sdb1 vg_group lvm2 a-- 1016.00m 4.00m
/dev/sdd1 vg_group lvm2 a-- 1016.00m 1016.00m
[root@qht131 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
data1 vg_group -wi-ao-- 1.98g
[root@qht131 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_group 3 1 0 wz--n- 2.98g 1020.00m --vg 1020M
[root@qht131 ~]# mount /dev/vg_group/data1 /data1
[root@qht131 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdc3 20G 5.9G 13G 33% /
tmpfs 499M 100K 499M 1% /dev/shm
/dev/sdc1 97M 28M 65M 31% /boot
/dev/mapper/vg_group-data1
2.0G 616M 1.3G 33% /data1
lvn , 300M( lv 616M , )。
: mysql , (flush tables with read lock;show master status;) Unlock tables , 。
[root@qht131 ~]# lvcreate -L 300M -s -n backup_data1 /dev/vg_group/data1
Logical volume "backup_data1" created
[root@qht131 ~]# mkdir -p /backup/data1
[root@qht131 ~]# mount /dev/vg_group/backup_data1 /backup/data1
[root@qht131 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdc3 20G 5.9G 13G 33% /
tmpfs 499M 100K 499M 1% /dev/shm
/dev/sdc1 97M 28M 65M 31% /boot
/dev/mapper/vg_group-data1
2.0G 616M 1.3G 33% /data1
/dev/mapper/vg_group-backup_data1
2.0G 616M 1.3G 33% /backup/data1
[root@qht131 ~]#
mount lv , , Data% 。
[root@qht131 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
backup_data1 vg_group swi-aos- 300.00m data1 0.00
data1 vg_group owi-aos- 1.98g
, Origin Data% , Data% , , Data% 。
613M lv, , 。 , , 。
[root@qht131 data1]# ls -lth
total 613M
-rw-r--r--. 1 root root 613M Apr 17 18:55 mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
drwx------. 2 root root 16K Apr 17 18:54 lost+found
[root@qht131 data1]# cp mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz_bak
[root@qht131 data1]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdc3 20G 5.9G 13G 33% /
tmpfs 499M 100K 499M 1% /dev/shm
/dev/sdc1 97M 28M 65M 31% /boot
/dev/mapper/vg_group-data1
2.0G 1.2G 667M 65% /data1
lv , , IO 。
[root@qht131 data1]# lvs
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 2126446592: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 2126503936: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 0: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 4096: Input/output error
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
backup_data1 vg_group Swi-I-s- 300.00m data1 100.00
data1 vg_group owi-aos- 1.98g
[root@qht131 data1]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdc3 20G 5.9G 13G 33% /
tmpfs 499M 100K 499M 1% /dev/shm
/dev/sdc1 97M 28M 65M 31% /boot
/dev/mapper/vg_group-data1
2.0G 1.2G 667M 65% /data1
[root@qht131 data1]# lvdisplay -v backup_data1
Using logical volume(s) on command line
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 2126446592: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 2126503936: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 0: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 0: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 2126446592: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 2126503936: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 0: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 0: Input/output error
Volume group "backup_data1" not found
Skipping volume group backup_data1
lvm ,
vg
[root@qht131 data1]# lvremove /dev/vg_group/backup_data1
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 2126446592: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 2126503936: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 0: Input/output error
/dev/vg_group/backup_data1: read failed after 0 of 4096 at 4096: Input/output error
Do you really want to remove active logical volume backup_data1? [y/n]: y
Logical volume "backup_data1" successfully removed
[root@qht131 data1]# vgreduce vg_group /dev/sdd1
Removed "/dev/sdd1" from volume group "vg_group"
[root@qht131 data1]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_group 2 1 0 wz--n- 1.98g 4.00m
!
:https://blog.csdn.net/yanggd1987/article/details/50124997