Solusi 1:
Jangan gunakan RAID0, kegagalan salah satu drive akan mematikan array. RAID6, RAID10, bahkan satu drive tanpa larik akan lebih baik untuk ketersediaan.
f2fs dimaksudkan untuk bersahabat dengan perangkat solid state modern, dan md Linux dapat bekerja dengan sangat cepat.
Namun, tidak mungkin membuat pernyataan umum seperti f2fs pada array lebih baik tanpa data. Anda perlu mempertimbangkan apa beban kerja Anda, apakah pola I/O telah diukur pada sistem yang serupa dengan sistem Anda, dan faktor pembatas apa yang ada.
Lakukan analisis kapasitas. Perkirakan hal-hal seperti kueri database per detik, atau berapa banyak file yang dibaca dan ditulis. Ukur IOPS dengan alat seperti iostat -xz 1
. Jika r/s
dan w/s
angka mendekati kapasitas pengenal perangkat, Anda mungkin memerlukan disk yang lebih cepat. Harapkan kira-kira 100 IOPS per magnet yang berputar, dan setidaknya beberapa ribu IOPS dari sebagian besar SSD. Dan itu membuat perbedaan apakah disk terhubung sebagai SATA atau NVMe.
Mengevaluasi kinerja setiap sumber daya pada sistem. Penyimpanan cepat adalah bantuan terbatas jika Anda terikat CPU atau memori. Memori sangat berguna sebagai cache. Paging out yang berlebihan tidak baik, karena file swap mencuri kinerja sistem penyimpanan tetapi tidak secepat DRAM.
Setelah Anda memahami performa sistem sekarang, Anda dapat mulai mengevaluasi perubahan pada sistem penyimpanan.
Solusi 2:
Menggunakan F2FS pada HDD klasik bukanlah ide yang baik:meskipun kinerja penulisan acaknya mungkin akan lebih tinggi daripada EXT4 atau XFS, kecepatan baca berurutan pada sistem file lama akan sangat mengecewakan.
Untuk meningkatkan kinerja penulisan acak tanpa memiliki cache tulis kembali yang dilindungi powerloss (baca:pengontrol RAID yang sebenarnya), Anda harus mengonfigurasi aplikasi agar tidak masalah fsync(), tapi ini akan secara signifikan meningkatkan kemungkinan kehilangan data dengan shutdown yang tidak direncanakan. Jangan jangan nonaktifkan penghalang pada tingkat sistem (yaitu:dengan memberi tahu kernel bahwa Anda telah menulis melalui cache), karena hal itu dapat membuang seluruh sistem file jika terjadi kehilangan daya.
Anda juga dapat mempertimbangkan untuk menggunakan ZFS (sebaiknya meninggalkan striping sendiri, daripada ke lapisan MDRAID):karena sifat CoW-nya, penulisan acak secara signifikan lebih cepat daripada sistem file lain, sementara caching tingkat lanjut menghindari masalah dengan pembacaan berurutan. Bahkan mendukung sync=disabled
:jika Anda dapat mentolerir jendela kehilangan data ~5 detik jika terjadi shutdown yang tidak terduga, ini akan memberikan banyak IOP penulisan acak tanpa memengaruhi konsistensi aplikasi atau sistem file.
Terakhir, jika Anda menggunakan EXT4, Anda dapat melakukan tes cepat dengan data=journal
:meskipun ini akan menurunkan kinerja penulisan berurutan, penulisan acak seharusnya agak lebih cepat daripada mode jurnal default.