Rabu, 20 Agustus 2014

Oprek-oprek Partisi LVM Bag. 5

Pada tutorial yang lalu kita telah mensimulasikan pemindahan hardisk fisik yang bertipe LVM dari satu sistem ke sistem lainnya. Proses pemindahannya pun cukup mudah, kita hanya tinggal memindahkan 2 hardisk "/dev/sdb1" dan "/dev/sdc1" yang bertipe LVM tersebut dari Virtual Machine (VM) Ubuntu 14.04 ke VM CentOS 6.4. Kemudian kedua hardisk tersebut akan terdeteksi secara otomatis sebagai VG yang memiliki 3 LV aktif, kemudian kita tinggal me-mount ke tiga LV tersebut di folder local. Namun bagaimana kalau yang dihadapi adalah benar-benar hardisk LVM yang real, bukan Virtual Hardisk dan bukan Virtual Machine ? Apakah keadaannya juga akan semudah itu ?.
Nah, oleh karena itu kali ini kita akan benar-benar mencoba memindahkan sebuah Hardisk LVM dari satu sistem yang berbeda ke sistem yang lainnya. Pada percobaan kali ini, kebetulan saya memiliki sebuah Hardisk yang telah terinstall Baremetal OS Proxmox 3, dan kebetulan sistem operasi proxmox tersebut mengalami kerusakan sehingga tidak dapat menjalankan Virtual Machine (VM) yang ada didalamnya. Dan kebetulan juga partisi "/boot" nya mengalami kerusakan sehingga proxmox tidak bisa beroperasi. Pada kondisi ini, saya ingin menyelamatkan VM-VM yang ada didalamnya. Bagaimanakah caranya ?.

Tahapan yang saya lakukan adalah :
  • Saya melepas hardisk yang telah berisi Sistem Operasi Proxmox yang rusak tersebut, kemudian memindahkannya ke PC dengan OS Ubuntu Desktop 14.04
  • Setelah hardisk proxmox terpasang dengan baik di PC Ubuntu Desktop, saya mulai memeriksa hardisk yang terdeteksi:
it@it-H55M-S2:~$ sudo fdisk -l
[sudo] password for it: 

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003dea7

   Device Boot      Start         End      Blocks   Id  System
/dev/sda2         1048576   625141759   312046592   8e  Linux LVM

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
240 heads, 63 sectors/track, 64601 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xbf26bf26

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048   310546431   155272192   83  Linux
/dev/sdb2       310546432   312500223      976896   82  Linux swap / Solaris
/dev/sdb3       312500224   976771071   332135424    7  HPFS/NTFS/exFAT
Output dari perintah "fdisk -l" menunjukkan bahwa hardisk proxmox adalah "/dev/sda2" sedangkan sistem operasi Ubuntu Desktop 14.04 yang sedang berjalan ada di "/dev/sdb1".
  • Saya akan memeriksa PV, VG dan LV yang terdeteksi oleh OS Ubuntu. Namun sebelum melakukan itu, tentu saja saya harus memeriksa di OS Ubuntu 14.04 yang sedang saya gunakan ini apakah sudah terinstal aplikasi lvm atau belum :

  • it@it-H55M-S2:~$ sudo lvm version
    sudo: lvm: command not found
    

    Ow..ow.., ternyata paket aplikasi lvm belum terinstall. Maka saya harus menginstalnya terlebih dahulu. Karena saya tahu proxmox 3 menggunakan lvm2, maka saya menginstall lvm2 :

    it@it-H55M-S2:~$ sudo apt-get install lvm2
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following extra packages will be installed:
      libdevmapper-event1.02.1 watershed
    Suggested packages:
      thin-provisioning-tools
    The following NEW packages will be installed:
      libdevmapper-event1.02.1 lvm2 watershed
    0 upgraded, 3 newly installed, 0 to remove and 302 not upgraded.
    Need to get 492 kB of archives.
    After this operation, 1.427 kB of additional disk space will be used.
    Do you want to continue? [Y/n] y
    .
    .
    .
    .
    Setting up watershed (7) ...
    update-initramfs: deferring update (trigger activated)
    Setting up lvm2 (2.02.98-6ubuntu2) ...
    update-initramfs: deferring update (trigger activated)
    Processing triggers for libc-bin (2.19-0ubuntu6) ...
    Processing triggers for initramfs-tools (0.103ubuntu4) ...
    update-initramfs: Generating /boot/initrd.img-3.13.0-24-generic
    
    it@it-H55M-S2:~$ sudo lvm version 
      LVM version:     2.02.98(2) (2012-10-15)
      Library version: 1.02.77 (2012-10-15)
      Driver version:  4.27.0
    

  • Kemudian saya akan mencari PV, VG dan LV yang terdeteksi oleh OS Ubuntu Desktop 14.04 :
it@it-H55M-S2:~$ sudo pvscan
  PV /dev/sda2   VG pve   lvm2 [297,59 GiB / 16,00 GiB free]
  Total: 1 [297,59 GiB] / in use: 1 [297,59 GiB] / in no VG: 0 [0   ]

it@it-H55M-S2:~$ sudo vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "pve" using metadata type lvm2

it@it-H55M-S2:~$ sudo lvscan
  inactive          '/dev/pve/swap' [4,00 GiB] inherit
  inactive          '/dev/pve/root' [74,50 GiB] inherit
  inactive          '/dev/pve/data' [203,09 GiB] inherit

Ow..ow..ow.., lihatlah sekarang semua partisi LVM sudah terlihat dengan jelas. Dan berita yang menggembirakan adalah terdapat partisi "/dev/pve/data", kenapa berita ini menggembirakan ? karena kita tahu sendiri bahwa didalam partisi inilah terdapat VM-VM beserta file konfigurasinya yang pernah dibuat di dalam Baremetal OS Proxmox ketika dahulu ia masih beroperasi. Namun lihatlah bahwa ketiga partisi LV nya masih berstatus "inactive", maka saya akan mengaktifkannya terlebih dahulu.
    it@it-H55M-S2:~$ sudo vgchange -ay pve
      3 logical volume(s) in volume group "pve" now active
     
    it@it-H55M-S2:~$ sudo lvscan
      ACTIVE            '/dev/pve/swap' [4,00 GiB] inherit
      ACTIVE            '/dev/pve/root' [74,50 GiB] inherit
      ACTIVE            '/dev/pve/data' [203,09 GiB] inherit
    

  • Langkah selanjutnya adalah saya akan me-mount 2 partisi LV ke folder lokal di Ubuntu Desktop 14.04 :
it@it-H55M-S2:~$ mkdir mountLVM
it@it-H55M-S2:~$ mkdir mountLVM/root
it@it-H55M-S2:~$ mkdir mountLVM/data

it@it-H55M-S2:~$ sudo mount /dev/pve/root /home/it/mountLVM/root

it@it-H55M-S2:~$ sudo mount /dev/pve/data /home/it/mountLVM/data

it@it-H55M-S2:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1             146G   52G   87G  38% /
none                  4,0K     0  4,0K   0% /sys/fs/cgroup
udev                  1,9G  4,0K  1,9G   1% /dev
tmpfs                 382M  1,3M  381M   1% /run
none                  5,0M     0  5,0M   0% /run/lock
none                  1,9G   80K  1,9G   1% /run/shm
none                  100M   40K  100M   1% /run/user
/dev/sdb3             317G  8,2G  309G   3% /media/it/DATA 340GB
/dev/mapper/pve-root   74G  889M   69G   2% /home/it/mountLVM/root
/dev/mapper/pve-data  200G  103G   98G  52% /home/it/mountLVM/data

Kedua partisi LV sudah di-mount, selanjutnya adalah memeriksa data-data di dalamnya. Kita tahu bahwa Proxmox menyimpan file-file Image VM di folder "/var/lib/vz/images" dan file-file konfigurasi VM-VM nya di folder "/etc/pve/qemu-server". Maka jika ingin mem-backup semua VM-VM Image Proxmox, backup-lah ke dua folder ini. Dan kita juga tahu bahwa "/var/lib/vz" adalah mount folder dari partisi LV "/dev/pve/data", sedangkan "/" adalah mount folder dari partisi LV "/dev/pve/root". Oleh karena itu, untuk mencari file-file VM Image proxmox, maka carilah di mana kita baru saja me-mount partisi LV "/dev/pve/data" (yaitu di "/home/it/mountLVM/data"). Sedangkan untuk mencari file-file konfigurasi VM nya, maka carilah di mana kita baru saja me-mount partisi LV "/dev/pve/root" (yaitu di "/home/it/mountLVM/root").
  • Saya mengetikkan perintah-perintah di bawah ini untuk memeriksa apakah file-file VM Image yang dulu pernah saya buat, beserta file-file konfigurasinya masih ada. Berikut hasil investigasi yang saya lakukan :

  • it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images
    total 24
    drwxr-xr-x 2 root root 4096 Des 18  2013 100
    drwxr-xr-x 2 root root 4096 Des 31  2013 101
    drwxr-xr-x 2 root root 4096 Jan 29  2014 103
    drwxr-xr-x 2 root root 4096 Jan 29  2014 104
    drwxr-xr-x 2 root root 4096 Des 17  2013 Cluster1-ip7
    drwxr-xr-x 7 root root 4096 Des 13  2013 Cluster2-ip7
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/imagesddd/
    total 417116
    -rw-r--r-- 1 root root 426704896 Des 17  2013 vm-110-disk-1.raw
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/100
    total 0
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/101
    total 21533624
    -rw-r--r-- 1 root root 35566125056 Peb 11  2014 vm-101-disk-1.qcow2
    -rw-r--r-- 1 root root 10739318784 Peb 11  2014 vm-101-disk-2.qcow2
    -rw-r--r-- 1 root root   355339776 Des 18  2013 vm-101-state-tgl18Des2013virtio.raw
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/103
    total 1444628
    -rw-r--r-- 1 root root 34365243392 Jan 29  2014 vm-103-disk-1.qcow2
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/104
    total 1659880
    -rw-r--r-- 1 root root 34365243392 Jan 30  2014 vm-104-disk-1.qcow2
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/Cluster1-ip7/
    total 0
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/Cluster2-ip7/
    total 20
    drwxr-xr-x 2 root root 4096 Des 13  2013 100
    drwxr-xr-x 2 root root 4096 Des 13  2013 101
    drwxr-xr-x 2 root root 4096 Des 12  2013 109
    drwxr-xr-x 2 root root 4096 Des 10  2013 110
    drwxr-xr-x 2 root root 4096 Des 12  2013 111
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/Cluster2-ip7/100
    total 2099784
    -rw-r--r-- 1 root root 2148073472 Des 13  2013 vm-100-disk-1.qcow2
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/Cluster2-ip7/101
    total 32936948
    -rw-r--r-- 1 root root  7920222208 Des 12  2013 vm-101-disk-1.vmdk
    -rw-r--r-- 1 root root 21478375424 Des 12  2013 vm-101-disk-2.qcow2
    -rw-r--r-- 1 root root  4295884800 Des 13  2013 vm-101-disk-3.qcow2
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/Cluster2-ip7/109
    total 1598300
    -rw-r--r-- 1 root root 1635057664 Des 12  2013 vm-109-disk-1.vmdk
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/Cluster2-ip7/110
    total 29388836
    -rw-r--r-- 1 root root  8589934592 Des 10  2013 vm-110-disk-1.raw
    -rw-r--r-- 1 root root 21474836480 Des 17  2013 vm-110-disk-2.raw
    
    it@it-H55M-S2:~$ ls -l /home/it/mountLVM/data/images/Cluster2-ip7/111
    total 8398352
    -rw-r--r-- 1 root root 8591507456 Des 12  2013 vm-111-disk-1.qcow2
    

    Wah.., ternyata cukup banyak VM didalamnya yang juga memiliki size yang cukup besar (> 30GB).Nanti saya akan mem-backup 1 buah VM saja, yaitu VM 101. Sekarang saya akan mencari dimana file konfigurasi VM 101 tersebut :
    it@it-H55M-S2:~/Downloads/testdisk-7.0-WIP$ ls -l ~/mountLVM/root/etc/pve/
    total 0
    

    Namun sungguh sayang sekali, semua file konfigurasi VM-VM tersebut telah sirna entah kemana, mungkin ketika itu secara tidak sengaja saya hapus. Dan oleh karena itu saya hanya akan menyalin file image VM 101 saja, sebagai contoh cara menyelamatkan data pada hardisk LVM.
it@it-H55M-S2:~$ rsync -avz -P /home/it/mountLVM/data/images/101 /home/it/BackupVM/Proxmox
sending incremental file list
created directory /home/it/BackupVM/Proxmox
101/
101/vm-101-disk-1.qcow2
 35,566,125,056 100%   24.09MB/s    0:23:28 (xfr#1, to-chk=2/4)
101/vm-101-disk-2.qcow2
 10,739,318,784 100%   86.86MB/s    0:01:57 (xfr#2, to-chk=1/4)
101/vm-101-state-tgl18Des2013virtio.raw
    355,339,776 100%   17.91MB/s    0:00:18 (xfr#3, to-chk=0/4)

sent 12,066,368,687 bytes  received 125 bytes  7,812,475.76 bytes/sec
total size is 46,660,783,616  speedup is 3.87

drwxrwxr-x 3 it it 4096 Agu 21 16:57 Proxmox

it@it-H55M-S2:~$ ls -l /home/it/BackupVM/Proxmox/
total 4
drwxr-xr-x 2 it it 4096 Des 31  2013 101

it@it-H55M-S2:~$ ls -l /home/it/BackupVM/Proxmox/101
total 45567180
-rw-r--r-- 1 it it 35566125056 Peb 11  2014 vm-101-disk-1.qcow2
-rw-r--r-- 1 it it 10739318784 Peb 11  2014 vm-101-disk-2.qcow2
-rw-r--r-- 1 it it   355339776 Des 18  2013 vm-101-state-tgl18Des2013virtio.raw

Lihat lah file Image VM 101 telah berhasil saya backup ke local folder, walaupun file tersebut belum dicoba di restore ke Proxmox :P. Sekian dulu tutorial kali ini. Semoga bermanfaat.

Tidak ada komentar:

Posting Komentar