LVMファイルシステムスナップショット実測

8055 ワード

ファイルシステムのスナップショットは、非常に良いオンラインバックアップ方法です.スナップショットをサポートするファイルシステムは、バックアップに使用するコンテンツが一致するミラーを瞬時に作成できます.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_を確認する必要があります.イメージの余剰スペースは、不足すると拡張する必要があります.
[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