Operasi mkfs Membutuhkan Waktu yang Lama pada Raid Software Linux 5

9

Saya telah menyiapkan perangkat lunak Linux raid level 5 yang terdiri dari 4 * 2 TB disk. Array disk dibuat dengan ukuran strip 64k dan tidak ada parameter konfigurasi lainnya. Setelah pembangunan kembali awal saya mencoba membuat sistem file dan langkah ini memakan waktu sangat lama (sekitar setengah jam atau lebih). Saya mencoba membuat sistem file xfs dan ext3, keduanya membutuhkan waktu lama, dengan mkfs.ext3 Saya mengamati perilaku berikut, yang mungkin bisa membantu:

  • menulis tabel inode berjalan cepat hingga mencapai 1053 (~ 1 detik), kemudian menulis sekitar 50, menunggu selama dua detik, kemudian 50 berikutnya ditulis (sesuai dengan tampilan konsol)
  • ketika saya mencoba untuk membatalkan operasi dengan Control + C itu hang selama setengah menit sebelum itu benar-benar dibatalkan

Kinerja disk secara individual sangat baik, saya telah menjalankan Bonnie ++ pada masing-masing secara terpisah dengan nilai tulis / baca sekitar 95 / 110MB / s. Bahkan ketika saya menjalankan bonnie ++ pada setiap drive secara paralel, nilainya hanya berkurang sekitar 10 MB. Jadi saya tidak termasuk penjadwalan perangkat keras / I / O secara umum sebagai sumber masalah.

Saya mencoba berbagai parameter konfigurasi untuk stripe_cache_size dan ukuran readahead tanpa hasil, tetapi saya rasa mereka tidak relevan untuk operasi pembuatan sistem file.

Detail server:

  • Server Linux 2.6.35-27-generik # 48-Ubuntu SMP x86_64 GNU / Linux
  • mdadm - v2.6.7.1

Apakah ada yang punya saran tentang cara men-debug ini lebih lanjut?

Elmar Weber
sumber

Jawaban:

4

Saya setuju, itu mungkin terkait dengan penyelarasan garis. Dari pengalaman saya, pembuatan XFS yang tidak selaras pada 3 * 2TB RAID-0 membutuhkan waktu ~ 5 menit tetapi jika disejajarkan dengan ukuran garis itu adalah ~ 10-15 detik. Berikut adalah perintah untuk menyelaraskan ukuran XFS ke 256KB stripe:

mkfs.xfs -l internal,lazy-count=1,sunit=512 -d agsize=64g,sunit=512,swidth=1536 -b size=4096 /dev/vg10/lv00

BTW, lebar stripe dalam kasus saya adalah 3 unit, yang akan sama untuk Anda dengan 4 drive tetapi dalam raid-5.

Jelas, ini juga meningkatkan kinerja FS, sehingga Anda lebih baik tetap selaras.

dtoubelis
sumber
Hai, ini tidak ada bedanya, saya mencoba: time mkfs.xfs -l sunit=128 -d agsize=64g,sunit=128,swidth=512 -b size=4096 /dev/md0 -fyang kira-kira waktu yang sama seperti mkfs tanpa parameter
Elmar Weber
Saya menjalankan Bonnie ++, jadi lihat apakah ada perbedaan kinerja selama operasi. btw: apakah ada alasan untuk parameter agsize? Saya membaca halaman manual tetapi tidak dapat menyimpulkan manfaat dari pengaturan nilai.
Elmar Weber
(btw: perintah di atas salah, swidth yang benar adalah 384)
Elmar Weber
Saya tidak mendapatkan peningkatan kinerja pada mkfs, tetapi kinerja keseluruhan yang diukur dengan bonnie ++ jauh lebih baik: Operasi Pembuatan / Hapus File sekitar 4 kali lebih baik dari sebelumnya dan kecepatan penulisan berurutan sekitar 15%. Terima kasih banyak.
Elmar Weber
2
agsize tidak benar-benar diperlukan di sini - mkfs akan menghitungnya secara otomatis (mungkin membagi ukuran volume dengan jumlah CPU logis). Itu adalah sisa dari pengaturan saya sendiri - saya membuat volume ini dengan beberapa harapan untuk perubahan konfigurasi di masa depan.
dtoubelis
6

Saya menduga Anda mengalami masalah penulisan kecil RAID5 khas. Untuk menulis di bawah ukuran ukuran garis, itu harus melakukan baca-modifikasi-tulis untuk data dan paritas. Jika ukuran tulisannya sama dengan strip, ia bisa saja menimpa paritasnya, karena ia tahu nilainya, dan tidak perlu menghitung ulang.

malcolmpdx
sumber
Akan masuk akal, apakah saya melihat ini dengan benar?: Menurut output mkfs.ext3 ini menulis sekitar 25 tabel inode per detik, saya berasumsi mereka lebih kecil dari 64k selama pembuatan awal, sehingga strip 64k ditulis. Ini berarti menulis 16k untuk setiap disk, jadi bersama-sama 25 acak 16k menulis per detik, dengan ukuran sektor 4kb ini berarti 100 operasi i / o acak per detik, yaitu tentang apa yang ditunjukkan bonnie ++.
Elmar Weber
Cocokkan hasil dari Bonnie ++ pada serangan yang sebenarnya, 335 MB dibaca dan 310 MB tulis, namun pembuatan dan penghapusan file hanya 1/4 dari kinerja disk tunggal.
Elmar Weber
3

Mkfs Anda dan kinerja sistem file berikutnya mungkin membaik jika Anda menentukan langkah dan lebar garis saat membuat sistem file. Jika Anda menggunakan blok 4k default, langkah Anda adalah 16 (garis RAID 64k dibagi dengan blok sistem file 4k) dan lebar jalur Anda adalah 48 (langkah sistem file 16 dikalikan dengan 3 disk data dalam array Anda).

mkfs.ext3 -E stride=16 stripe-width=48 /dev/your_raid_device
sciurus
sumber