遷移LVM分割槽到新的邏輯卷/驅動器(第六部分)

1 贊 回覆發表於2014-12-19

這是我們正在進行的LVM系列的第六部分。在本文中,我們將為大家展示怎樣線上將現存的邏輯卷遷移到其它新的驅動器。在開始之前,我想要先來介紹一下LVM遷移及其特性。

LVM儲存遷移

什麼是LVM遷移?

LVM遷移是LVM眾多優秀特性之一,通過它,我們可以遷移邏輯捲到一個新的磁碟而不會丟失資料,也不用關機操作。該特性的功能是將資料從舊磁碟移動到新磁碟。通常,我們只是在一些磁碟發生錯誤時,才將資料從一個磁碟遷移到另外一個磁碟儲存。

遷移特性

  • 將邏輯卷從一個磁碟移動到另一個磁碟。
  • 我們可以使用任何型別的磁碟,如SATA、SSD、SAS、SAN storage iSCSI或者FC。
  • 線上遷移磁碟,而且資料不會丟失。

在LVM遷移中,我們將交換各個卷、檔案系統以及位於已有的儲存中的資料。例如,如果我們有一個單一邏輯卷,它已經對映到了物理卷,而該物理卷是一個物理硬碟驅動器。

現在,如果我們需要升級伺服器儲存為SSD硬碟驅動器,我們首先需要考慮什麼?重新格式化磁碟?不!我們不必重新格式化伺服器,LVM可以選擇將這些舊的SATA驅動器上的資料遷移到新的SSD驅動器上。線上遷移將會支援任何型別的磁碟,不管是本地驅動器,還是SAN或者光纖通道都可以。

我的伺服器設定

作業系統:  CentOS 6.5 Final
IP地址:   192.168.0.224
系統主機名:  lvmmig.tecmintlocal.com

步驟1: 檢查當前驅動器

1.假設我們已經有一個名為“vdb”的虛擬驅動器,它已經被對映到了其中一個邏輯卷“tecmint_lv”。現在,我們想要遷移“vdb”這個邏輯捲到其它某個新的儲存裝置中。在開始之前,首先在下面所示的fdisk和lvs命令的幫助下驗證該虛擬驅動器。

# fdisk -l | grep vd
# lvs

Check Logical Volume Disk

檢查邏輯卷磁碟

步驟2: 檢查新新增的驅動器

2.在我們確認了現存驅動器後,現在是時候來將新的SSD驅動器連線到系統並在fdisk命令的幫助下驗證新新增的驅動器了。

# fdisk -l | grep dev

Check New Added Drive

檢查新新增的驅動器

注意:你看到上面螢幕中的內容了嗎?新的驅動器已經被成功新增了,其名稱為“/dev/sda”。

步驟3: 檢查當前邏輯和物理卷

3.現在,讓我們開始建立物理卷、卷組和邏輯卷以用於遷移。在建立卷時,確保檢查/mnt/lvm掛載點下的當前邏輯卷的資料。用以下命令來列出掛載點並檢查資料。

# df -h
# cd /mnt/lvm
# cat tecmint.txt

Check Logical Volume Data

檢查邏輯卷資料

注意:出於演示的目的,我們已經在/mnt/lvm掛載點下建立了兩個檔案,我們將線上將這些資料遷移到新的驅動器中。

4.在遷移之前,確保對確認與物理卷相關的邏輯卷和卷組名稱,並且確認哪個物理卷用於容納該卷組和邏輯卷。

# lvs
# vgs -o+devices | grep tecmint_vg

Confirm Logical Volume Names

確認邏輯卷名稱

注意:看到上面螢幕中的內容了嗎?“vdb”容納了卷組tecmint_vg

步驟4: 建立新物理卷

5.在在我們新新增的SSD驅動器中建立物理卷之前,我們需要使用fdisk來定義分割槽。在建立分割槽時,別忘了修改分割槽型別為LVM(8e)。

# pvcreate /dev/sda1 -v
# pvs

Create Physical Volume

建立物理卷

6.接下來,使用‘vgextend命令’來新增新建立的物理捲到現存卷組tecmint_vg。

# vgextend tecmint_vg /dev/sda1
# vgs

Add Physical Volume

新增物理卷

7.要獲得卷組的完整資訊列表,請使用‘vgdisplay’命令。

# vgdisplay tecmint_vg -v

List Volume Group Info

列出卷組資訊

注意:在上面螢幕中,我們可以看到在輸出結果的結束處,我們的PV已經新增到了卷組中。

8.如果我們需要知道更多關於哪些裝置被對映的資訊,請使用‘dmsetup’依賴命令。

# lvs -o+devices
# dmsetup deps /dev/tecmint_vg/tecmint_lv

在上面的結果中,有個1個依賴(PV)或(驅動器),而這裡17被列出了。如果你想要檢查裝置,那些關聯的有著主、次裝置號的驅動器,以確認,使用下面的命令。

# ls -l /dev | grep vd

List Device Information

列出裝置資訊

注意:在上面的命令中,我們可以看到主裝置號是252,次裝置號是17,它連線到了vdb1。希望你理解了上面命令的輸出。

步驟5: LVM映象法

9.現在,該使用映象法來進行遷移了。使用‘lvconvert’命令來將資料從舊邏輯卷遷移到新驅動器。

# lvconvert -m 1 /dev/tecmint_vg/tecmint_lv /dev/sda1
  • -m = 映象
  • 1 = 新增單個映象

Mirroring Method Migration

映象法遷移

注意:上面的遷移過程根據卷的大小會花費一段時間。

10.在遷移過程完成後,驗證轉換的映象。

# lvs -o+devices

Verify Converted Mirror

驗證轉換的映象

11.當你確認轉換的映象沒有任何問題後,你可以移除舊的虛擬磁碟vdb1-m選項將移除映象,先前我們使用l來新增映象。

# lvconvert -m 0 /dev/tecmint_vg/tecmint_lv /dev/vdb1

Remove Virtual Disk

移除虛擬磁碟

12.在舊虛擬磁碟移除後,你可以使用以下命令來再次檢查邏輯卷裝置。

# lvs -o+devices
# dmsetup deps /dev/tecmint_vg/tecmint_lv
# ls -l /dev | grep sd

Check New Mirrored Device

檢查新映象的裝置

在上面的圖片中,你看到了嗎?我們的邏輯卷現在依賴於8,1,名稱為sda1。這說明我們的遷移過程已經完成了。

13.現在驗證我們從舊驅動器上遷移過來的檔案。如果在新驅動器中的資料與原資料一樣,那就說明我們每一步都完成得很完美。

# cd /mnt/lvm/
# cat tecmin.txt 

Check Mirrored Data

檢查映象的資料

# vgreduce /dev/tecmint_vg /dev/vdb1
# vgs -o+devices

14.在所有的都被完美建立後,現在該從卷組中刪除vdb1並進行再次確認,哪些裝置依賴於我們的卷組。

15.在從卷組tecmint_vg移除vdb1後,我們的邏輯卷還在那兒,因為我們已經將它從vdb1遷移到了sda1

# lvs

Delete Virtual Disk

刪除虛擬磁碟

步驟6: LVM pvmove映象法

16.我們可以使用帶有‘-n’(邏輯卷名稱)選項的‘pvmove’命令來取代‘lvconvert’映象命令,在兩個裝置間進行資料映象。

# pvmove -n /dev/tecmint_vg/tecmint_lv /dev/vdb1 /dev/sda1

該命令是在兩個裝置間映象資料的最簡單的一個,但是在真實環境中,映象pvmove使用得更為頻繁。

結尾

在本文中,我們介紹了怎樣將邏輯卷從一個驅動器遷移到另一個驅動器。希望你已經掌握了邏輯卷管理中這一新的技巧。對於該配置,必須建立在掌握邏輯卷管理基礎技能的基礎上。對於基礎配置,請參閱本文頂部需求章節中提供的連結。


via: http://www.tecmint.com/lvm-storage-migration/#comment-331336

作者:Babin Lonston 譯者:GOLinux 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

相關文章