Ya, implementasi Linux RAID1 mempercepat operasi pembacaan disk dengan dua kali lipat selama dua operasi pembacaan disk terpisah dilakukan pada waktu yang sama . Itu berarti membaca satu file 10 GB tidak akan lebih cepat di RAID1 daripada di satu disk, tetapi membaca dua file 10 GB yang berbeda*akan lebih cepat.
Untuk mendemonstrasikannya, cukup baca beberapa data dengan dd
. Sebelum melakukan apa pun, kosongkan cache baca disk dengan sync && echo 3 > /proc/sys/vm/drop_caches
. Jika tidak hdparm
akan mengklaim membaca super cepat.
File tunggal:
# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s
Dua file:
# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s
Membaca data 10 GB membutuhkan waktu 65 detik sedangkan membaca data 10 GB + 10 GB =20 GB membutuhkan waktu total 68,7 detik, yang berarti pembacaan beberapa disk mendapat manfaat besar dari RAID1 di Linux. skip=$COUNT
bagian sangat penting. Proses kedua membaca 10 GB data dari offset 10 GB.
Jawaban Jared dan komentar ssh yang merujuk ke http://www.unicom.com/node/459 salah. Patokan dari sana membuktikan pembacaan disk tidak mendapat manfaat dari RAID1. Namun, pengujian dilakukan dengan alat pembandingan bonnie++ yang tidak melakukan dua pembacaan terpisah sekaligus. Penulis secara eksplisit menyatakan bonnie++ tidak dapat digunakan untuk pembandingan larik RAID (lihat readme).
Ya, Anda akan mendapatkan peningkatan performa membaca + redundansi. Anda dapat dengan mudah membayangkannya karena Anda dapat membaca bagian-bagian file secara bersamaan dari dua HDD yang berbeda karena file tersebut berada di kedua HDD tersebut.
Jadi secara teoritis, jika pengontrol RAID melakukan tugasnya dengan benar, Anda bisa mendapatkan kecepatan O(n).
-
man 4 md
menyatakan:"… Perhatikan bahwa penyeimbangan baca yang dilakukan oleh driver tidak membuat profil kinerja RAID1 sama dengan RAID0; satu aliran masukan tidak akan dipercepat (mis. satu dd), tetapi beberapa aliran berurutan atau beban kerja acak akan menggunakan lebih dari satu spindel. Secara teori , memiliki N-disk RAID1 akan memungkinkan N utas berurutan untuk membaca dari semua disk. …" -
Terlebih lagi — dalam praktik , berdasarkan
iostat
keluaran diamati pada penyiapan RAID perangkat lunak 2 HDD biasa, tidak ada penyeimbang . Sebenarnya ini terlihat sepertimdadm
opsi--write-mostly
selalu aktif.