linux LVM mirror vs. MD mirror

11

Saya pikir saya ingat membuat cermin beberapa tahun yang lalu dengan LVM, dan saya tidak ingat hal "log" ini. Atau mungkin saya membuat cermin dengan mdadm dan meletakkan LVM di atasnya. Pasti begitu.

  1. Untuk apa log LVM jika itu hanya sebuah cermin? Apa yang disimpan di sana? Apa tujuannya? Apakah menggunakan "--mirrorlog core" buruk? Apa sisi bawahnya? Saya tidak mau harus memiliki partisi lain untuk log jika saya tidak perlu.

  2. Adakah rekomendasi untuk menggunakan teknologi tersebut? Bahkan jika saya membuat cermin dengan mdadm, saya akan menggunakan LVM di atas itu. Jadi, dalam hal ini, mungkin lebih baik memiliki seluruh pengaturan yang dibangun dengan LVM ...? Apakah itu akan menghasilkan lebih banyak kinerja atau kurang?

Disk digunakan untuk menyimpan Xen domU "disk".

Maaf untuk "pertanyaan" rumit yang tidak tepat sasaran.

Ide, saran, dan tautan sangat disambut. Terima kasih!

d -_- b
sumber
md tampaknya berkinerja lebih baik untuk operasi cermin jika dibandingkan dengan lvm. Lihat serverfault.com/questions/80134/linux-md-vs-lvm-performance
Zoredache
1
Mirroring LVM dimaksudkan untuk tujuan yang berbeda. Meskipun Anda dapat menggunakannya untuk "mirror" seperti MD, itu benar-benar digunakan untuk volume kloning. Lihat serverfault.com/questions/97845/lvm-mirroring-vs-raid1
Avery Payne
1
Jika itu dimaksudkan untuk kloning, lalu mengapa itu membutuhkan tiga volume?
d -_- b
Lihat pertanyaan terkait unix.stackexchange.com/questions/150644/...
Faheem Mitha

Jawaban:

9

Secara pribadi saya selalu pergi MD + LVM. Itu lebih cepat (MD dapat melakukan pembacaan paralel dalam RAID1) dan hanya membutuhkan 2 disk (jika Anda tidak ingin membangun kembali mirror setelah setiap reboot) dan MD dirancang hanya untuk melakukan RAID, dan ia melakukannya dengan sangat baik. Ini juga lebih fleksibel.

Saya juga telah dibakar oleh LVM. Dalam satu kasus itu adalah LVM striping pada HP-UX, (seharusnya tidak terjadi w / LVM2 di Linux), dan saya tidak dapat memperpanjang LV karena ekstensi harus memiliki jumlah garis yang persis sama. Tampaknya masuk akal, tetapi kadang-kadang ...

Lain waktu dengan mirroring (LVM2 di Linux kali ini), tapi sekarang saya tidak ingat apakah LVM menolak untuk mengambil snapshot dari mirror LV atau untuk memperpanjangnya, secara efektif meniadakan manfaat untuk memiliki LVM di tempat pertama (kami melakukannya pada akhirnya, tetapi terlibat menggunakan lvconvert bolak-balik).

Dan Andreatta
sumber
Terima kasih! Saya pikir saya akan pergi dengan LVM di atas MD. Sepertinya ada beberapa masalah dengan deteksi otomatis MD. ( raid.wiki.kernel.org/index.php/RAID_Boot ) Saya agak ingin mencerminkan seluruh sistem saya (swap, boot, /, var, home, usr). Jadi saya harus mencari sesuatu selain deteksi otomatis.
d -_- b
Ya, autodetect adalah ide yang bagus pada prinsipnya, tetapi memberikan semua jenis sakit kepala. Saya telah mengatur dengan iSCSI + multipath + MD + LVM ... dan deteksi otomatis ... menarik, tetapi tidak berguna dalam kasus ini.
Dan Andreatta
4

Ketika sepasang cermin tiba-tiba mati, dalam sistem apa pun, mungkin ada beberapa blok yang telah ditulis ke satu perangkat tetapi belum ke yang lain. Dapat dibayangkan dengan menata ulang jalur IO ada beberapa blok yang telah ditulis untuk A tetapi tidak B, dan beberapa ditulis ke B tetapi belum ke A.

Ketika mesin dinyalakan kembali, itu perlu membuat perangkat konsisten. Hanya memiliki dua perangkat saja tidak cukup: tidak akan tahu blok mana yang tidak konsisten dan tidak akan tahu versi mana yang lebih baru.

Jadi perangkat lunak cermin perlu menyimpan sedikit metadata untuk melacak hal ini. Ini disebut "log niat tulis".

md biasanya menyimpannya dalam ruang khusus di dalam perangkat itu sendiri , meskipun Anda juga dapat memilih untuk menyimpannya di perangkat yang terpisah. (Ini adalah salah satu alasan mengapa mirror md sedikit lebih kecil dari perangkat dasar.

LVM mirror hanya dapat menyimpan log tingkat-tulis secara eksternal, yang seperti yang Anda perhatikan agak menjengkelkan untuk kasus khas di mana Anda memiliki tepat dua disk fisik. Saya yakin Anda masih memiliki pilihan untuk menyimpannya di partisi yang berbeda pada perangkat fisik yang sama, tetapi itu masih merepotkan.

Tujuan dari mirror mirror LVM, seperti yang saya mengerti, adalah untuk melacak blok yang telah ditulis ke satu perangkat tetapi belum ke yang lain.

poolie
sumber
2

ini adalah dua konsep berbeda:

  • LVM adalah seperti namanya untuk manajemen volume. Anggap saja sebagai mekanisme untuk menggabungkan beberapa volume menjadi satu (ya bisa dibilang seperti raid0), mengubah ukurannya, mengubah ukurannya, membuat snapshot.
  • MD adalah untuk manajemen RAID. Tambahkan beberapa perangkat menjadi satu metadevice, jadikan metadevice ini sangat tersedia dengan menggunakan raid1, 5, 10, dll ...

LVM beroperasi pada perangkat penyimpanan baik itu metadevices, atau perangkat yang disajikan oleh pengontrol serangan, atau hanya disk biasa.

MD beroperasi pada disk (ya Anda juga dapat menggunakan disk yang disajikan oleh pengontrol serangan, tapi apa gunanya? ..

LVM bukan untuk membuat penyimpanan Anda sangat tersedia. Dan juga MD bukan untuk manajemen volume ...

Semoga ini membantu :)

rytis
sumber
1
Saya mengerti apa itu. Namun, jika Anda membaca halaman manual untuk lvcreate, ia mengatakan itu dapat membuat mirror. Saya kira ini sedikit mainan untuk saat ini?
d -_- b
1
aku ya. saya tidak dapat melihat ada gunanya setidaknya untuk saat ini. tidak hanya itu cermin pada tingkat volume (bukan perangkat), itu juga sedikit "menarik" bagaimana itu dibuat, misalnya jika Anda membutuhkan cermin 2 arah (seperti dalam salinan + asli) Anda perlu memiliki 3 volume - satu untuk setiap sisi volume cermin + log. tapi sekali lagi - imho. :)
rytis
1

LVM berasal dari jenis sistem UNIX lainnya. Saya menggunakannya pada HPUX yang tidak memiliki lapisan MD Linux ketika saya bekerja di atasnya 10 tahun yang lalu, tidak yakin tentang sekarang. Dalam keadaan seperti itu LVM mirroring menjadi berguna dalam situasi di mana RAID perangkat keras tidak tersedia.

Ron McOuat
sumber
Saya baru merasa aneh bahwa cermin LVM membutuhkan lebih dari satu volume. Cermin macam apa itu?
d -_- b
1
@toor volume ketiga digunakan untuk menyimpan log write-ahead untuk mirror, pada dasarnya untuk melacak apa yang perlu disinkronkan kembali setelah berhenti tiba-tiba. Pada MD, ini biasanya disimpan di bagian cadangan dari dua disk.
poolie
1

dengan -mirrorlog mirrored dan opsi -alloc Anywhere, dengan dua disk, Anda mendapatkan dua log mirror 4M, satu di setiap disk. Saya kesal karena saya harus mengganti kebijakan untuk situasi yang tampaknya paling umum, tetapi oh well.

LVM di Linux tidak terkait dengan hal pada HP-UX atau AIX, hanya memiliki perintah userspace yang sama. LVM di Linux secara internal menggunakan sistem DM, dan karenanya menggunakan semua kode yang sama seperti MD. Pada titik ini, saya tidak melihat kelebihan LVM dibandingkan MD. Untuk partisi yang Anda inginkan dengan cepat dan tidak peduli tentang pencadangan (mis. Swap partisi untuk VM tamu), LVM memberi Anda opsi apakah Anda ingin yang dicerminkan atau tidak, atau apakah pengupasan lebih baik.

Dan, jauh lebih mudah untuk menambahkan disk ke LVM daripada MD.

mcr
sumber