LVM快照Snapshot備份
LVM快照Snapshot備份
部分轉自:
總結邏輯卷快照的意思就是:
對A拍個照建立B,A上資料一旦有變化就先把原來的內容複製到B上在更改A;而B的空間未用完前,B上內容都是A快照時的一致性內容;
命令總結:
針對快照進行檔案系統的備份:lv_snap一定要預留一定空間;
建立:# lvcreate -L4.4G -s -n LogVol02s VolGroup00/LogVol02;
# mkdir /mnt/LogVol02s;
# mount -o nouuid,norecovery,ro /dev/vg1/lv1-snap /mnt/lv1-snap/; # 快照可直接掛載,建議只讀方式
# tar -zcvpf /tmp/backup.tar.gz /mnt/LogVol02s/*; # 用tar命令進行檔案備份;
# lvremove /dev/VolGroup00/LogVol02s; # 備份完成後刪除快照;
常用Linux命令使用技巧:LVM快照Snapshot備份
快照(snapshot)是LVM所提供的一個非常有用的特性。它的原理是複製 Origin 原始卷的後設資料(metadata)來建立一個邏輯卷,並沒有複製物理捲上的任何資料, 因此它的建立過程是實時瞬間完成的。快照是特殊型別的邏輯卷,它含有建立時刻所指定的原始邏輯卷的完整資料,您可以操作快照而無需擔心資料的變更令備份失效。
LVM 快照利用一種稱為“寫時複製(COW - Copy-On-Write)”的技術來跟蹤和維持其資料的一致性。它的原理比較簡單,就是跟蹤原始捲上塊的改變, 在這些資料被改變之前將其複製到快照自己的預留空間裡(顧名思義稱為寫時複製)。 當對快照進行讀取的時候,被修改的資料從快照的預留空間中讀取,未修改的資料則重定向到原始捲上去讀取,因此在快照的檔案系統與裝置之間多了一層COW裝置。
利用快照您可以凍結一個正在使用中的邏輯卷,然後製作一份凍結時刻的備份,由於這個備份是具有一致性的,因此非常的適合於用來備份實時系統。例如,您的執行中的資料庫可能即使在備份時刻也是不允許暫停服務的,那麼就可以考慮使用LVM的快照模式,然後再針對此快照來進行檔案系統級別或者塊裝置級別的資料備份。
# lsmod | grep dm; #使用snapshot需要核心模組dm-snapshot;
# modprobe dm-snapshot; #如有需要,必須先載入此模組;
# lvs; # 先檢視一下目前LV的大小;
------------------------------------------------------------------------------
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 6.88G
LogVol01 VolGroup00 -wi-ao 1.00G
LogVol02 VolGroup00 -wi-ao 4.00G
LogVol03 VolGroup00 -wi-ao 5.00G
------------------------------------------------------------------------------
說明:此實驗目標是備份邏輯卷LogVol02,邏輯卷LogVol03掛載於/backup用來儲存備份檔案;
理論上,您所建立的快照卷的大小應該是原始卷的1.1倍大小,但鑑於建立快照的目的多是為臨時備份資料,因此實際使用時可視您的備份速度和資料變更的頻繁程度來決定快照卷的大小。例如,您預計完成一個完整備份大概需要1個小時,而在這個時間之內資料變更的大小不會超過100M,那麼您就可以安全地建立100M大小的快照卷。
# vgs; # 看看卷組VG夠不夠空間建立快照;
------------------------------------------------------------------------------
VG #PV #LV #SN Attr VSize VFree
VolGroup00 3 4 0 wz--n- 23.81G 7.94G
------------------------------------------------------------------------------
如上所示,目前卷組VolGroup00還有大概8G的空間,足以建立快照;
開始建立邏輯卷VolGroup00/LogVol02的快照(注意這裡取1.1倍大小空間):
# lvcreate -L4.4G -s -n LogVol02s VolGroup00/LogVol02;
------------------------------------------------------------------------------
Rounding up size to full physical extent 4.41 GB
Logical volume "LogVol02s" created
------------------------------------------------------------------------------
# lvs; # 看看剛建立的快照;
------------------------------------------------------------------------------
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 6.88G
LogVol01 VolGroup00 -wi-ao 1.00G
LogVol02 VolGroup00 owi-ao 4.00G
LogVol02s VolGroup00 swi-a- 4.41G LogVol02 0.02
LogVol03 VolGroup00 -wi-ao 5.00G
------------------------------------------------------------------------------
# lvscan; # 看看剛建立的快照;
------------------------------------------------------------------------------
ACTIVE '/dev/VolGroup00/LogVol00' [6.88 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [1.00 GB] inherit
ACTIVE Original '/dev/VolGroup00/LogVol02' [4.00 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol03' [5.00 GB] inherit
ACTIVE Snapshot '/dev/VolGroup00/LogVol02s' [4.41 GB] inherit
------------------------------------------------------------------------------
# /bin/ls -1 -d /dev/mapper/VolGroup00-LogVol02s*
------------------------------------------------------------------------------
/dev/mapper/VolGroup00-LogVol02s
/dev/mapper/VolGroup00-LogVol02s-cow
------------------------------------------------------------------------------
快照卷無需做格式化等步驟,可以直接對快照捲進行掛載,解除安裝等操作,而且操作完成之後,就應該立即刪除快照,以減輕系統的I/O負擔。 快照不會自動更新,長久保留是沒有意義的。
針對快照進行塊裝置的備份:
# dd if=/dev/VolGroup00/LogVol02s of=/backup/LogVol02.dd; # 用dd命令進行塊備份;
針對快照進行檔案系統的備份:
# mkdir /mnt/LogVol02s;
# mount /dev/VolGroup00/LogVol02s /mnt/LogVol02s; # 快照可直接掛載;
# tar -zcvpf /tmp/backup.tar.gz /mnt/LogVol02s/*; # 用tar命令進行檔案備份;
# lvremove /dev/VolGroup00/LogVol02s; # 備份完成後刪除快照;
通常建立快照卷的主要目的是做備份用途,可以寫一個簡單的備份指令碼來自動建立快照,然後掛載進行備份,備份完成後又自動解除安裝和刪除。因為快照的建立速度非常快,所以使用快照來操作備份作業不僅可以解決一致性問題, 而且可以減少備份時間。
請參考如下程式碼:
# vi snapshot_backup.sh; #建立備份指令碼;
------------------------------------------------------------------------------
#!/bin/bash
today=`date "+%Y%m%d"`;
lvcreate -L1G -s -n LogVol02s /dev/VolGroup00/LogVol02;
mount /dev/VolGroup00/LogVol02s /disk/VolGroup00/LogVol02s;
tar -zcvf /tmp/snapshot_backup_$today.tar.gz /disk/VolGroup00/LogVol02s/*;
umount /dev/VolGroup00/LogVol02s;
lvremove -f /dev/VolGroup00/LogVol02s;
------------------------------------------------------------------------------
chmod 755 snapshot_backup.sh; #設定執行許可權;
可以將此備份指令碼設定成每天定時執行,就可當成是一個完整備份的方案。
順便提一些,如要從dd的備份中恢復,反過來操作即可。
例如,先用dd命令摧毀邏輯卷LogVol02中的資料,以便進行恢復測試:
# dd if=/dev/zero of=/dev/VolGroup00/LogVol02 bs=512 count=1024;
這時嘗試掛載邏輯卷LogVol02將會失敗:
# mount /dev/mapper/VolGroup00-LogVol02 /opt;
如下命令將 dd 備份檔案直接寫入LogVol02邏輯卷,即可恢復資料:
# dd if=/backup/LogVol02.dd of=/dev/VolGroup00/LogVol02;
再嘗試掛載所恢復的邏輯卷LogVol02,成功掛載後再檢查資料:
# mount /dev/mapper/VolGroup00-LogVol02 /opt;
===============================================================================
XFS:
[root@server0 ~]# mount -o nouuid,norecovery,ro /dev/vg1/lv1-snap /mnt/lv1-snap/
掛載快照,儘量使用ro的方式,將不會破壞快照卷中的資料
===============================================================================
[root@server0 ~]# dmsetup ls --tree
vg1-lv2--snap (252:5)
├─vg1-lv2--snap-cow (252:7)
│ └─ (253:17)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)
vg1-lv2 (252:1)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)
快照自動增長:經測試,設定下面引數不能自動增長
[root@server0 ~]# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 70
snapshot_autoextend_percent = 20
[root@server0 ~]# systemctl restart lvm2-monitor.service
注:快照卷 和 原卷 使用同一VG空間
部分轉自:
總結邏輯卷快照的意思就是:
對A拍個照建立B,A上資料一旦有變化就先把原來的內容複製到B上在更改A;而B的空間未用完前,B上內容都是A快照時的一致性內容;
命令總結:
針對快照進行檔案系統的備份:lv_snap一定要預留一定空間;
建立:# lvcreate -L4.4G -s -n LogVol02s VolGroup00/LogVol02;
# mkdir /mnt/LogVol02s;
# mount -o nouuid,norecovery,ro /dev/vg1/lv1-snap /mnt/lv1-snap/; # 快照可直接掛載,建議只讀方式
# tar -zcvpf /tmp/backup.tar.gz /mnt/LogVol02s/*; # 用tar命令進行檔案備份;
# lvremove /dev/VolGroup00/LogVol02s; # 備份完成後刪除快照;
常用Linux命令使用技巧:LVM快照Snapshot備份
快照(snapshot)是LVM所提供的一個非常有用的特性。它的原理是複製 Origin 原始卷的後設資料(metadata)來建立一個邏輯卷,並沒有複製物理捲上的任何資料, 因此它的建立過程是實時瞬間完成的。快照是特殊型別的邏輯卷,它含有建立時刻所指定的原始邏輯卷的完整資料,您可以操作快照而無需擔心資料的變更令備份失效。
LVM 快照利用一種稱為“寫時複製(COW - Copy-On-Write)”的技術來跟蹤和維持其資料的一致性。它的原理比較簡單,就是跟蹤原始捲上塊的改變, 在這些資料被改變之前將其複製到快照自己的預留空間裡(顧名思義稱為寫時複製)。 當對快照進行讀取的時候,被修改的資料從快照的預留空間中讀取,未修改的資料則重定向到原始捲上去讀取,因此在快照的檔案系統與裝置之間多了一層COW裝置。
利用快照您可以凍結一個正在使用中的邏輯卷,然後製作一份凍結時刻的備份,由於這個備份是具有一致性的,因此非常的適合於用來備份實時系統。例如,您的執行中的資料庫可能即使在備份時刻也是不允許暫停服務的,那麼就可以考慮使用LVM的快照模式,然後再針對此快照來進行檔案系統級別或者塊裝置級別的資料備份。
# lsmod | grep dm; #使用snapshot需要核心模組dm-snapshot;
# modprobe dm-snapshot; #如有需要,必須先載入此模組;
# lvs; # 先檢視一下目前LV的大小;
------------------------------------------------------------------------------
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 6.88G
LogVol01 VolGroup00 -wi-ao 1.00G
LogVol02 VolGroup00 -wi-ao 4.00G
LogVol03 VolGroup00 -wi-ao 5.00G
------------------------------------------------------------------------------
說明:此實驗目標是備份邏輯卷LogVol02,邏輯卷LogVol03掛載於/backup用來儲存備份檔案;
理論上,您所建立的快照卷的大小應該是原始卷的1.1倍大小,但鑑於建立快照的目的多是為臨時備份資料,因此實際使用時可視您的備份速度和資料變更的頻繁程度來決定快照卷的大小。例如,您預計完成一個完整備份大概需要1個小時,而在這個時間之內資料變更的大小不會超過100M,那麼您就可以安全地建立100M大小的快照卷。
# vgs; # 看看卷組VG夠不夠空間建立快照;
------------------------------------------------------------------------------
VG #PV #LV #SN Attr VSize VFree
VolGroup00 3 4 0 wz--n- 23.81G 7.94G
------------------------------------------------------------------------------
如上所示,目前卷組VolGroup00還有大概8G的空間,足以建立快照;
開始建立邏輯卷VolGroup00/LogVol02的快照(注意這裡取1.1倍大小空間):
# lvcreate -L4.4G -s -n LogVol02s VolGroup00/LogVol02;
------------------------------------------------------------------------------
Rounding up size to full physical extent 4.41 GB
Logical volume "LogVol02s" created
------------------------------------------------------------------------------
# lvs; # 看看剛建立的快照;
------------------------------------------------------------------------------
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 6.88G
LogVol01 VolGroup00 -wi-ao 1.00G
LogVol02 VolGroup00 owi-ao 4.00G
LogVol02s VolGroup00 swi-a- 4.41G LogVol02 0.02
LogVol03 VolGroup00 -wi-ao 5.00G
------------------------------------------------------------------------------
# lvscan; # 看看剛建立的快照;
------------------------------------------------------------------------------
ACTIVE '/dev/VolGroup00/LogVol00' [6.88 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [1.00 GB] inherit
ACTIVE Original '/dev/VolGroup00/LogVol02' [4.00 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol03' [5.00 GB] inherit
ACTIVE Snapshot '/dev/VolGroup00/LogVol02s' [4.41 GB] inherit
------------------------------------------------------------------------------
# /bin/ls -1 -d /dev/mapper/VolGroup00-LogVol02s*
------------------------------------------------------------------------------
/dev/mapper/VolGroup00-LogVol02s
/dev/mapper/VolGroup00-LogVol02s-cow
------------------------------------------------------------------------------
快照卷無需做格式化等步驟,可以直接對快照捲進行掛載,解除安裝等操作,而且操作完成之後,就應該立即刪除快照,以減輕系統的I/O負擔。 快照不會自動更新,長久保留是沒有意義的。
針對快照進行塊裝置的備份:
# dd if=/dev/VolGroup00/LogVol02s of=/backup/LogVol02.dd; # 用dd命令進行塊備份;
針對快照進行檔案系統的備份:
# mkdir /mnt/LogVol02s;
# mount /dev/VolGroup00/LogVol02s /mnt/LogVol02s; # 快照可直接掛載;
# tar -zcvpf /tmp/backup.tar.gz /mnt/LogVol02s/*; # 用tar命令進行檔案備份;
# lvremove /dev/VolGroup00/LogVol02s; # 備份完成後刪除快照;
通常建立快照卷的主要目的是做備份用途,可以寫一個簡單的備份指令碼來自動建立快照,然後掛載進行備份,備份完成後又自動解除安裝和刪除。因為快照的建立速度非常快,所以使用快照來操作備份作業不僅可以解決一致性問題, 而且可以減少備份時間。
請參考如下程式碼:
# vi snapshot_backup.sh; #建立備份指令碼;
------------------------------------------------------------------------------
#!/bin/bash
today=`date "+%Y%m%d"`;
lvcreate -L1G -s -n LogVol02s /dev/VolGroup00/LogVol02;
mount /dev/VolGroup00/LogVol02s /disk/VolGroup00/LogVol02s;
tar -zcvf /tmp/snapshot_backup_$today.tar.gz /disk/VolGroup00/LogVol02s/*;
umount /dev/VolGroup00/LogVol02s;
lvremove -f /dev/VolGroup00/LogVol02s;
------------------------------------------------------------------------------
chmod 755 snapshot_backup.sh; #設定執行許可權;
可以將此備份指令碼設定成每天定時執行,就可當成是一個完整備份的方案。
順便提一些,如要從dd的備份中恢復,反過來操作即可。
例如,先用dd命令摧毀邏輯卷LogVol02中的資料,以便進行恢復測試:
# dd if=/dev/zero of=/dev/VolGroup00/LogVol02 bs=512 count=1024;
這時嘗試掛載邏輯卷LogVol02將會失敗:
# mount /dev/mapper/VolGroup00-LogVol02 /opt;
如下命令將 dd 備份檔案直接寫入LogVol02邏輯卷,即可恢復資料:
# dd if=/backup/LogVol02.dd of=/dev/VolGroup00/LogVol02;
再嘗試掛載所恢復的邏輯卷LogVol02,成功掛載後再檢查資料:
# mount /dev/mapper/VolGroup00-LogVol02 /opt;
===============================================================================
XFS:
[root@server0 ~]# mount -o nouuid,norecovery,ro /dev/vg1/lv1-snap /mnt/lv1-snap/
掛載快照,儘量使用ro的方式,將不會破壞快照卷中的資料
===============================================================================
[root@server0 ~]# dmsetup ls --tree
vg1-lv2--snap (252:5)
├─vg1-lv2--snap-cow (252:7)
│ └─ (253:17)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)
vg1-lv2 (252:1)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)
快照自動增長:經測試,設定下面引數不能自動增長
[root@server0 ~]# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 70
snapshot_autoextend_percent = 20
[root@server0 ~]# systemctl restart lvm2-monitor.service
注:快照卷 和 原卷 使用同一VG空間
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-1983571/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用LVM快照備份MysqlLVMMySql
- LVM快照與mysql備份LVMMySql
- snapshot standby快照備庫角色
- Mysql備份系列(4)--lvm-snapshot備份mysql資料(全量+增量)操作記錄MySqlLVM
- LVM : 快照LVM
- SQL Server 2008快照備份SQLServer
- 在Linux中,什麼是快照備份?Linux
- Oracle 快照控制檔案(snapshot control file)Oracle
- Oracle快照控制檔案(snapshot control file)Oracle
- 天翼云云主機快照、雲硬碟備份、雲主機備份之間的區別硬碟
- 為SQL Server快照snapshot DB建立login訪問SQLServer
- Oracle 18C新特性之PDB snapshot(快照) CarouselOracle
- EsgynDB執行備份還原時提示:Snapshot metadata is currently locked
- Backup And Recovery User's Guide-進行增量備份-進行VSS快照的增量備份(略)GUIIDE
- 物理備庫互轉快照備庫
- [轉帖]資料庫的快照隔離級別(Snapshot Isolation)資料庫
- 幾款實用的容錯、備份與快照工具介紹WP
- 虛擬機器中的快照和備份之間的區別虛擬機
- linux snapper/lvm2卷 建立、備份與恢復LinuxAPPLVM
- LVM常規操作記錄梳理(擴容/縮容/快照等)LVM
- Oracle 18C新特性之PDB snapshot Carousel--PDB快照輪播Oracle
- maven中snapshot快照庫和release釋出庫的區別和作用Maven
- 10 管理物理和快照備庫
- Ubuntu 上使用 LVM 輕鬆調整分割槽並製作快照UbuntuLVM
- oracle備份--離線備份Oracle
- mysql snapshot read快照讀及current read當前讀與鎖lock之一MySql
- 完全備份、差異備份、增量備份的區別
- Backup And Recovery User's Guide-備份RMAN備份-使用RMAN備份備份集GUIIDE
- Backup And Recovery User's Guide-備份RMAN備份-關於備份的備份GUIIDE
- Backup And Recovery User's Guide-備份RMAN備份-備份保留期對備份的備份的影響GUIIDE
- Oracle 聯機備份 離線備份 物理備份 恢復Oracle
- 資料備份≠容災備份
- 備份之控制檔案備份
- Lvm邏輯卷管理、建立、使用、擴充套件、縮減、遷移、快照、恢復LVM套件
- Data Guard新特性:快照備用資料庫資料庫
- Backup And Recovery User's Guide-備份RMAN備份-用RMAN備份映象拷貝備份GUIIDE
- Backup And Recovery User's Guide-RMAN備份概念-備份集-備份集和備份片GUIIDE
- Oracle裡邏輯備份、物理備份、Rman備份的區別Oracle