Saya memiliki NAS 2-bay murah dengan HDD 2TB. Agar kuat terhadap kegagalan disk, saya berpikir untuk membeli HDD 2TB kedua dan memasukkannya ke RAID1 dengan Linux mdadm. Sistem file ext4.
Apakah ini akan meningkatkan atau menurunkan kinerja NAS? Bagaimana dengan sekedar membaca atau menulis kinerja?
Tampaknya ada banyak pendapat tentang ini secara online tetapi tidak ada konsensus.
Terima kasih.
Edit:
Jadi saya sudah mendapat tiga jawaban berbeda: "sedikit lebih cepat", "Anda tidak akan memperhatikan" dan "akan menurunkan kinerja jika ada". (Saya terutama tertarik pada kinerja membaca.) Wikipedia mengatakan "kinerja membaca dapat naik secara kasar sebagai kelipatan linear dari jumlah salinan". Yang mana?
Edit 2:
Saya telah menemukan bukti pemasangan yang mendukung peningkatan kinerja baca RAID1, termasuk halaman manual MD:
Perubahan ditulis ke semua perangkat secara paralel. Data dibaca dari salah satu perangkat. Pengemudi mencoba untuk mendistribusikan permintaan baca di semua perangkat untuk memaksimalkan kinerja.
Saya juga menemukan MD's RAID10 dengan --layout=f2
, yang menyediakan redundansi RAID1 dengan kinerja baca RAID0, dan dapat digunakan hanya dengan dua drive. Namun kinerja penulisan berkurang, karena penulisan berurutan melibatkan kedua drive yang mencari bolak-balik antara bagian drive yang jauh. man md
untuk detail.
Jawaban:
Ya, implementasi RAID1 Linux mempercepat operasi pembacaan disk dua kali selama dua operasi pembacaan disk dilakukan secara bersamaan . Itu berarti membaca satu file 10GB tidak akan membuat RAID1 lebih cepat daripada pada disk tunggal, tetapi membaca dua file 10GB yang berbeda * akan lebih cepat.
Untuk menunjukkannya, cukup baca beberapa data dengan
dd
. Sebelum melakukan apa pun, bersihkan cache dengan disk bacasync && echo 3 > /proc/sys/vm/drop_caches
. Kalau tidak,hdparm
akan mengklaim pembacaan super cepat.File tunggal:
Dua file:
Membaca 10 GB data membutuhkan waktu 65 detik sedangkan membaca 10 GB + 10 GB = 20 GB data membutuhkan total 68,7 detik, yang berarti banyak pembacaan disk mendapat manfaat besar dari RAID1 di Linux.
skip=$COUNT
bagian itu sangat penting. Proses kedua membaca 10 GB data dari offset 10 GB.Jawaban Jared dan komentar ssh yang merujuk pada http://www.unicom.com/node/459 salah. Benchmark dari sana membuktikan pembacaan disk tidak mendapat manfaat dari RAID1. Namun, tes ini dilakukan dengan alat benchmarking bonnie ++ yang tidak melakukan dua pembacaan terpisah pada satu waktu. Penulis secara eksplisit menyatakan bonnie ++ tidak dapat digunakan untuk pembandingan array RAID ( lihat readme ).
sumber
Ya, Anda akan mendapatkan peningkatan kinerja membaca + redundansi. Anda dapat dengan mudah membayangkan bahwa ketika Anda dapat membaca bagian-bagian file secara bersamaan dari dua HDD yang berbeda karena file-file tersebut ada di kedua HDD tersebut.
Jadi secara teoritis, jika pengontrol RAID melakukan tugasnya dengan benar, Anda dapat memperoleh peningkatan O (n).
sumber
man 4 md
menyatakan: "... Perhatikan bahwa pembacaan pembacaan yang dilakukan oleh pengemudi tidak membuat profil kinerja RAID1 sama dengan untuk RAID0 ; aliran input tunggal tidak akan dipercepat (misalnya satu dd), tetapi beberapa aliran berurutan atau acak beban kerja akan menggunakan lebih dari satu spindle. Secara teori , memiliki N-disk RAID1 akan memungkinkan N urutan berurutan untuk membaca dari semua disk. … "Sebagai tambahan - dalam praktiknya , berdasarkan pada
iostat
keluaran yang diamati pada 2 pengaturan perangkat lunak RAID khas HDD, tidak ada keseimbangan . Bahkan sepertinyamdadm
opsi--write-mostly
itu selalu aktif.sumber
Tidak, Anda tidak akan menerima manfaat apa pun saat membaca dari mdadm RAID1. Saya bertanya pada diri sendiri tentang hal ini beberapa waktu lalu.
dstat
menunjukkan penggunaan disk, jugabwm-ng
sangat membantu terutama dalam kasus ini, karena dapat menunjukkan penggunaan baca / tulis pada anggota RAID mdadm yang terpisah. Cukup tekan n(berikutnya) beberapa kali, itu akan beralih dari statistik antarmuka ke statistik disk. Kemudian beralih ke nilai maks dengan tuntuk melihat max baca / tulis dari setiap disk. Anda akan melihat berikut:Melakukan menulis ke volume RAID1 bwm-ng menunjukkan 2 x menulis, menulis ke 2 disk sekaligus. Melakukan membaca dari volume RAID1 bwm-ng menunjukkan pembacaan dari drive tunggal (anggota array).
sumber