Ada beberapa hal yang terjadi di sini.
Pertama, semua teknologi disk modern dioptimalkan untuk transfer massal. Jika Anda perlu memindahkan 100MB data, mereka akan melakukannya lebih cepat jika mereka berada di satu blok yang berdekatan daripada tersebar di semua tempat. SSD sangat membantu di sini, tetapi bahkan mereka lebih suka data dalam blok yang berdekatan.
Kedua, resilver cukup optimal sejauh operasi disk berjalan. Anda membaca sepotong besar data yang berdekatan dari satu disk, melakukan beberapa operasi CPU cepat di atasnya, kemudian menulis ulang di sepotong besar yang berdekatan ke disk lain. Jika listrik gagal setengah jalan, bukan masalah besar - Anda hanya akan mengabaikan data dengan checksum yang buruk dan melanjutkan seperti biasa.
Ketiga, menghapus file sangat lambat . ZFS sangat buruk, tetapi secara praktis semua sistem file lambat untuk dihapus. Mereka harus memodifikasi sejumlah besar potongan data yang berbeda pada disk dan mengatur waktu dengan benar (yaitu menunggu) sehingga sistem file tidak rusak jika daya gagal.
Bagaimana mungkin resilver seluruh array membutuhkan waktu satu jam, tetapi menghapus dari disk membutuhkan waktu 4 hari?
Resilver adalah sesuatu yang membuat disk sangat cepat, dan penghapusan adalah sesuatu yang lambat pada disk. Per megabyte disk, Anda hanya perlu melakukan sedikit resilver. Anda mungkin memiliki seribu file di ruang itu yang perlu dihapus.
70 penghapusan / detik nampaknya performanya sangat sangat buruk
Tergantung. Saya tidak akan terkejut dengan ini. Anda belum menyebutkan jenis SSD apa yang Anda gunakan. Intel modern dan SSD Samsung cukup bagus dalam operasi semacam ini (baca-modifikasi-tulis) dan akan berkinerja lebih baik. SSD yang lebih murah / lebih lama (mis. Corsair) akan lambat. Jumlah operasi I / O per detik (IOPS) adalah faktor penentu di sini.
ZFS adalah sangat lambat untuk menghapus hal-hal. Biasanya, itu akan melakukan penghapusan di latar belakang sehingga Anda tidak melihat penundaan. Jika Anda melakukan sejumlah besar dari mereka itu tidak dapat menyembunyikannya dan harus menunda Anda.
Lampiran: mengapa penghapusan lambat?
- Menghapus file memerlukan beberapa langkah. Metadata file harus ditandai sebagai 'dihapus', dan akhirnya harus direklamasi sehingga ruang dapat digunakan kembali. ZFS adalah 'filesystem terstruktur log' yang berkinerja terbaik jika Anda hanya pernah membuat sesuatu, tidak pernah menghapusnya. Struktur log berarti bahwa jika Anda menghapus sesuatu, ada celah di log dan data lain harus disusun ulang (didefragmentasi) untuk mengisi kesenjangan. Ini tidak terlihat oleh pengguna tetapi umumnya lambat.
- Perubahan harus dibuat sedemikian rupa sehingga jika daya gagal sebagian, sistem file tetap konsisten. Seringkali, ini berarti menunggu hingga disk mengonfirmasi bahwa data benar-benar ada di media; untuk SSD, itu bisa memakan waktu lama (ratusan milidetik). Efek bersih dari ini adalah bahwa ada lebih banyak pembukuan (yaitu operasi disk I / O).
- Semua perubahan itu kecil. Alih-alih membaca, menulis, dan menghapus seluruh blok flash (atau silinder untuk disk magnetik), Anda perlu memodifikasi sedikit. Untuk melakukan ini, perangkat keras harus membaca di seluruh blok atau silinder, memodifikasinya dalam memori, kemudian menuliskannya ke media lagi. Ini butuh waktu lama.