LVM dan kloning HD

7

Menggunakan Linux, saya memiliki beberapa level cadangan. Salah satunya adalah sektor berkala dengan menyalin sektor (menggunakan dd) harddisk laptop saya ke disk USB eksternal. Ya, saya punya cadangan lain juga, seperti remote rsync.

Pendekatan ini (disk dd) tidak apa-apa ketika mengkloning HDD tanpa volume LVM, karena saya bisa pasang disk eksternal kapan saja dan me-mount partisi hanya dengan memasang /dev/sdb*bukan /dev/sda*. Sepele dan praktis.

Hari ini saya memindahkan SEMUA harddisk saya (termasuk /boot) ke LVM. Semuanya bekerja dengan baik. Saya akan menekankannya selama beberapa hari, dan kemudian saya akan melakukan copy sektor per sektor ke harddisk eksternal saya.

Sekarang saya punya masalah, saya kira.

Jika di masa depan saya pasang HDD USB eksternal untuk memulihkan file apa pun, OS akan mendeteksi konfigurasi LVM duplikat, dengan nama yang sama dan UUID yang sama. Bahkan ketika melakukan vgrename( LVM mana yang akan diganti namanya, HDD internal atau HDD eksternal? ), UUID yang dikloning tidak akan berubah. Apakah ada perintah untuk mengganti nama dan UUID? Idealnya saya akan mengkloning HDD dan kemudian mengubah nama grup LVM dan UUID-nya, tapi saya tidak tahu bagaimana melakukannya.

Masalah terkait lainnya adalah ...

Di masa lalu saya telah mem-boot laptop saya menggunakan disk eksternal, menggunakan menu boot BIOS dan mengubah entri GRUB secara manual untuk boot dari /dev/sdbbukan /dev/sda. Tetapi sekarang konfigurasi GRUB saya saat ini melakukan boot langsung dari volume logis LVM, sesuatu seperti: set root='(LVM-root)'di grub.cfg. Jadi ... Apa yang akan terjadi dengan volume duplikat?

Ada saran?

Saya kira saya dapat mempartisi ulang harddisk eksternal saya dan mengubah strategi cadangan dari ddmenjadi rsync, tetapi disk ini memiliki windows yang diinstal juga, dan saya benar-benar ingin memiliki salinan fisik "nyata".

jcea
sumber
1
Mungkin Anda bisa mencoba beberapa trik mirroring LVM.
Cristian Ciupitu

Jawaban:

4

Menutup masalah ini, setelah satu tahun. Saya telah menulis jawabannya di situs web pribadi saya . Saya harap ini bermanfaat bagi orang lain.

Saya menggunakan beberapa level cadangan, dari rsync ke disk eksternal ke rsync + ZFS melalui komputer jarak jauh. Salah satu cadangan yang saya lakukan adalah -dari waktu ke waktu- "dd" dari laptop saya ke USB eksternal yang terpasang (terhubung hanya selama prosedur pencadangan). Saya melakukan ini, misalnya, sebelum membawa laptop saya untuk perjalanan.

Prosedur ini bekerja dengan baik selama berabad-abad. Sampai saya mulai menggunakan LVM di laptop saya.

Jika Anda menggunakan LVM di komputer Anda, Anda menyalin harddisk Anda menggunakan dd(boot dari LiveCD) dan Anda pasang harddisk eksternal saat komputer berjalan normal, nanti, ANDA AKAN MEMPERBAIKI DATA ANDA, BAHKAN KALAH SEMUA KURANGI FILESYSTEM ANDA DI LUAR PERBAIKAN APAPUN !! !

Mengapa?. Karena ketika Anda mencolokkan harddisk eksternal, OS akan melihat konfigurasi LVM yang sama di kedua disk dan secara naif akan berasumsi bahwa kedua disk itu sama, dapat diakses melalui tautan multipath, sehingga akan menyebar membaca dan menulis di antara kedua disk, KOTOR rusak yang tak dapat ditebus. Anda akan membuang data langsung dan cadangan Anda !.

Ini terjadi pada saya sekali. Saya kehilangan data. Saya punya cadangan lain, selama beberapa hari sebelumnya, jadi saya tidak kehilangan sesuatu yang sangat penting, tetapi itu cukup menjengkelkan dan memperlihatkan kelemahan dalam strategi cadangan saya.

Solusi: Pastikan konfigurasi LVM dalam disk cadangan berbeda. Masalahnya adalah ... Bagaimana cara melakukannya?

Saya memposting pertanyaan di superuser.com (Stack Exchange) tetapi saya tidak mendapatkan jawaban yang bagus. Jadi saya mengembangkan prosedur saya sendiri dan, setelah lebih dari setahun berjuang, saya mempostingnya di sini dan menutup pertanyaan awal:

  • Pastikan bahwa jika ada masalah, komputer Anda tidak akan boot secara otomatis. Dalam kasus saya, laptop saya tidak bisa boot secara otomatis jika daya mati dan hidup kembali. Selain itu, harddisk dienkripsi, sehingga akan meminta kata sandi.

    Ini diperlukan karena Anda dapat merusak KEDUA disk jika Anda mem-boot ulang dengan disk cadangan yang terpasang sebelum menyelesaikan prosedur.

  • Boot dari Live CD. Anda tidak dapat melakukan "dd" dari partisi langsung, jika Anda berharap dapat memulihkan data Anda :-).

    Sesuatu untuk dicoba di masa depan adalah dengan menggunakan snapshot LVM untuk dapat melakukan backup saat saya menggunakan komputer, tetapi kemudian saya memiliki masalah duplikat LVM, yang saya coba hindari di sini. Pilihan lain adalah mengkonfigurasi ulang LVM untuk mirror data langsung ke harddisk eksternal, dan memecahkan cermin setelah sinkronisasi selesai. Tapi itu terdengar berisiko, dan tidak akan mencadangkan partisi Windows saya atau data yang saya tidak simpan dalam volume LVM.

  • Setelah mem-boot LiveCD, pasang harddisk USB eksternal.

  • Login sebagai "root" dan jalankan vgchange -a n. Perintah ini akan menonaktifkan LVM di kedua disk. Saya menjalankan perintah beberapa kali, pasti.

  • Pastikan /dev/sdasumbernya (harddisk internal) dan /dev/sdbtujuannya (harddisk eksternal USB). Misalnya, lakukan dd if=/dev/sdb of=/dev/nulldan periksa LED harddisk mana yang berkedip.

  • Ketika Anda yakin tentang disk yang mana, Anda melakukan penyalinan dd if=/dev/sda of=/dev/sdb bs=65536. Dengan konfigurasi saya, cadangan membutuhkan waktu empat jam. Harddisk internal saya adalah 500GB, dan USB saya menyalin pada 35MB / s. Saya melakukan ini di malam hari, sementara saya tidur.

    Harddisk USB eksternal Anda harus, SETIDAKNYA, sebesar harddisk internal Anda. Sudah jelas, bukan?

  • Setelah penyalinan ini selesai, Anda memiliki kloning yang tepat untuk harddisk internal Anda. Pencadangan selesai. Tetapi sekarang Anda akan memiliki masalah jika Anda pernah mencolokkan harddisk ini ke komputer Anda saat Anda bekerja dengan harddisk internal Anda, seperti yang sudah dijelaskan. Kita perlu mengubah konfigurasi LVM.

  • Sekarang, setelah "dd" selesai, lakukan "sinkronisasi" dan cabut harddisk UDB eksternal.

  • Anda mengeksekusi pvchange --uuid /dev/sda*. Perintah ini akan mengubah UUID dari semua volume fisik di harddisk internal Anda. Perintah ini aman bahkan jika Anda memiliki partisi yang bukan volume fisik untuk LVM, karena mereka akan secara otomatis dan aman dilewati.

    Sistem tahu partisi mana yang volume fisik karena jenis partisi dan karena Anda mengeksekusi "pvcreate" ketika Anda membuat LVM.

  • Anda mengeksekusi vgchange -u LVM. Perintah ini akan mengubah UUID grup volume LVM. Omong-omong, grup volume saya disebut "LVM".

  • Anda mengeksekusi vgscan. Perintah ini akan memindai harddisk internal (satu-satunya yang saat ini terpasang) dan akan menemukan grup volume LVM Anda di sana.

  • Anda menjalankan vgrename LVM LVM2, untuk mengubah nama Volume Group Anda.

  • Sekarang Anda pasang harddisk USB eksternal Anda.

  • Anda "vgscan" lagi, kali ini untuk menemukan Grup Volume di harddisk USB eksternal. Sekarang Anda akan memiliki dua Grup Volume. Satu disebut "LVM2" di harddisk internal Anda dan yang lain disebut "LVM" di harddisk eksternal USB Anda.

  • Ganti nama Kelompok Volume di harddisk USB eksternal dengan vgrename LVM LVM_BACKUP.

  • Dan mengubah nama Volume Group di harddisk internal yang kembali ke nama asli: vgrename LVM2 LVM.

  • Kamu selesai. Anda dapat meninjau situasi dengan vgdisplay -v.

    Anda akan melihat bahwa Volume Logical UUID sama di kedua Grup Volume, tetapi itu tampaknya tidak menimbulkan masalah, dan saya tidak tahu bagaimana mengubahnya.

  • Cabut hard disk USB eksternal Anda, simpan di tempat yang aman, reboot komputer Anda, keluarkan LiveCD dan kembali ke bisnis.

jcea
sumber
3

Saya setuju dengan salah satu jawaban sebelumnya - menjalankan dd pada seluruh disk bukanlah solusi yang bagus di sini. Jika alasan Anda terjebak pada dd ada hubungannya dengan membuat cadangan OS lain, maka Anda dapat menggunakan dd hanya untuk partisi OS lainnya, dan rsync untuk partisi linux.

Bagian dari masalahnya adalah bahwa jika Anda menjalankan dd seluruh disk saat Anda memiliki sistem file dan dipasang dari itu, tidak ada cara untuk memastikan cadangan konsisten. Mungkin berfungsi 9 kali dari 10, tetapi di bawah beban apa pun, cadangan yang dihasilkan dapat rusak. Satu-satunya cara untuk memastikan ini tidak terjadi adalah dengan meng-unmount semua sistem file dan menonaktifkan semua grup volume selama waktu dd berjalan. Sangat tidak nyaman jika / Anda dipasang dari LVM.

Bagaimanapun, jika Anda bersikeras untuk tetap dengan pendekatan ini, alat yang Anda cari untuk mengganti nama vg yang digandakan disebut "vgimportclone". Ini dimaksudkan untuk digunakan dengan snapshot tingkat perangkat, tetapi ini akan bekerja dengan dd juga.

MG
sumber
1
Tentu saja, "dd" selesai melakukan booting dari livecd. Disk tidak terpasang.
jcea
Menggunakan "dd" memiliki dua masalah, di samping efek "kloning" LVM: 1. Downtime (di laptop saya, sekitar EMPAT jam. Saya melakukan backup ketika saya tidak membutuhkan komputer, seperti saat makan di luar) dan 2. Jika disk sumber memiliki kesalahan baca, salinan akan gagal dan disk tujuan (cadangan) tidak konsisten dan tidak dapat digunakan untuk memulihkan kesalahan baca di disk utama. Masalah ini MAJOR, tetapi dapat dengan mudah dipecahkan menggunakan DUA disk cadangan, berganti-ganti cadangan. Dengan cara ini, jika cadangan saat ini gagal dan Anda tidak dapat menggunakannya, Anda memiliki cadangan sebelumnya yang konsisten.
jcea
1

Mempelajari masalah ini dengan cermat, saya pikir pendekatan yang tepat adalah:

  1. Pasang HD eksternal.

  2. Nonaktifkan manajemen LVM dari HD kedua: "vgchange -an / dev / LVM2".

  3. Kloning harddisk, dengan "dd".

  4. Untuk setiap volume fisik, buat UUID baru untuk disk klon, dengan "pvchange -u / dev / hdb *".

  5. Ubah UUID VG dengan "vgchange -u LVM". Ini akan mengubah UUID dari salah satu VG, bisa jadi asli atau klon. Itu tidak masalah. Menjadi berbeda sudah cukup.

  6. Ubah nama VG disk yang dikloning dari "LVM" menjadi "LVM2", dengan "vgrename". Saya tidak tahu apakah ini akan berhasil tanpa "vgscan" sebelumnya untuk "menemukan" VG baru.

Apakah ini akan berhasil?

jcea
sumber
Yang pertama vgchangetidak akan berfungsi, saya pikir Anda pertama kali harus menggunakan filter seperti yang saya jelaskan di serverfault.com/a/670986/270721
Josip Rodin
Saya telah menggunakan prosedur respons yang diterima selama bertahun-tahun.
jcea
Saya kira tangkapannya bekerja jika Anda benar-benar dapat menonaktifkan kedua grup volume - jika Anda tidak menggunakan yang asli sama sekali.
Josip Rodin
Dalam daftar periksa saya yang diterima, langkah pertama adalah "boot dari CD langsung" ... Jadi Anda dapat menonaktifkan semua grup volume.
jcea
Ah, itu masuk akal. Ada situasi di mana orang dapat membuat klon saat sistem online, meskipun itu lebih merupakan topik untuk situs ServerFault / UnixLinux.
Josip Rodin
0

Saya tidak berpikir bahwa dd adalah pilihan terbaik untuk backup dalam banyak kasus, karena beberapa alasan. Salah satu opsi sebagai seseorang yang disebutkan adalah menggunakan mirroring LVM. Anda dapat memutuskan koneksi drive eksternal dan ketika Anda memasangnya kembali itu akan melakukan sinkronisasi ulang tanpa harus menyalin 100% dari segalanya termasuk sektor kosong seperti dd. Tetapi secara pribadi saya pikir lebih baik / sederhana adalah dengan hanya menggunakan rsync untuk menyalin ke drive eksternal Anda. Tidak hanya dengan faaaaaar tercepat, cadangan Anda juga dapat langsung digunakan tanpa langkah tambahan yang diperlukan sama sekali. Kombinasikan ini dengan snapshot LVM pada drive eksternal dan Anda memiliki beberapa salinan titik waktu yang semuanya dapat digunakan kapan saja tanpa ada tipu daya tambahan.

sungut
sumber
Tentakel, "dd" adalah yang terakhir dari TIGA skema pencadangan berbeda yang saya miliki. Dua lainnya berbasis rsync. Saya perlu "dd" dari waktu ke waktu karena disk internal saya memiliki beberapa OS yang diinstal.
jcea