Mengimplementasikan Linux fstrim pada SSD dengan perangkat lunak md-raid

14

Saat ini saya sedang membangun server Ubuntu 13.04 baru dengan 2 256GB SSD di mirror raid untuk menjalankan instance MariaDB. Kami biasanya menempatkan LVM di atas enkripsi dm-crypt di atas array md raid 1 , tetapi belum pernah menggunakan SSD dalam pengaturan ini sebelumnya.

Pertanyaan saya adalah, karena kita akan menggunakan kernel yang lebih baru (3.8), seharusnya fstrim dapat diterapkan ke volume serangan secara langsung seperti yang saya mengerti. Bisakah saya sekarang hanya mengandalkan ini untuk bekerja dengan baik fstrim -v /melalui pekerjaan cron, seperti yang saya lakukan jika serangan itu tidak ada? Apakah ini benar bahkan dengan LVM di atas volume serangan? Kami berencana untuk menggunakan enkripsi perangkat keras yang ada di drive, jadi kami tidak perlu dm-crypt di sini.

CATATAN: Saya sadar bahwa ada beberapa pertanyaan serupa yang melibatkan backporting versi kernel yang diperbarui dan mengimplementasikan discard dengan volume md - Saya bertanya secara khusus apakah fstrimbekerja melawan md-raid tanpa modifikasi lebih lanjut dalam kernel yang lebih baru.

PEMBARUAN: Hanya ingin menindaklanjuti dan memposting bahwa ini berfungsi dengan baik. Sekarang ada pekerjaan di cron. Setiap hari menjalankan fstrim /dan /bootbekerja dengan sempurna. Juga, ternyata enkripsi perangkat keras pada SSD (Samsung 840 Pros) tampaknya memerlukan dukungan TPM, yang tidak kami miliki, jadi kami melakukan konfigurasi dengan enkripsi perangkat lunak seperti yang ditunjukkan dalam tautan. Dengan menambahkan discardopsi di /etc/crypttab( tidak ke /etc/fstab) dan issue_discards = 1ke bagian perangkat /etc/lvm/lvm.conf, fstrim berfungsi dengan baik bahkan melalui LVM, enkripsi, dan lapisan RAID. Info lebih lanjut tentang mengkonfigurasi trim / discard pada SSD dengan LVM dan enkripsi tersedia di sini.

nedm
sumber

Jawaban:

11

Patch untuk mdraid dukungan RAID 1 dan 10 untuk TRIM naik sekitar setahun yang lalu.

Anda dapat menguji dukungan kernel Anda dengan memasang sistem file dengan discardopsi (yang memungkinkan TRIM otomatis). Jika didukung, Anda akan melihat pesan di syslog atau dmesgmenyukai yang berikut ini:

EXT4-fs (md1): re-mounted. Opts: discard,data=ordered

Kalau tidak, Anda akan mendapatkan ini:

EXT4-fs warning (device md1): ext4_issue_discard:2619: discard not supported, disabling

Anda tidak perlu reboot untuk melihat apakah itu berfungsi:

mount /dir -o remount
Michael Hampton
sumber
1
Jadi jika saya mengerti Anda dengan benar, jika pemasangan dengan karya buangan, maka fstrim juga harus?
nedm
1
Benar. Jika sepenuhnya diimplementasikan sepenuhnya, maka itu akan berfungsi baik.
Michael Hampton
3
Ingatlah untuk mengubah opsi pemasangan sesudahnya, jika Anda tidak bermaksud melakukan TRIM otomatis. :)
Michael Hampton
2
Sebagai catatan, dukungan TRIM untuk RAID1 ditambahkan pada 11 Oktober 2012, lihat di sini lkml.indiana.edu/hypermail/linux/kernel/1203.1/01772.html Jadi kernel 3.4 tidak mendukungnya tetapi 3.8 tidak (tidak tahu) sekitar 3,5 / 3,6 / 3,7)
Joril
3
@MichaelHampton sayangnya itu tidak benar. Misalnya, memiliki kernel 3.2, dengan ext4 pada LVM di MD (soft) RAID1, (re) mount ext4 dengan discard tidak akan melaporkan kesalahan, tetapi tidak akan berfungsi dengan baik (seperti MD RAID1 di kernel 3.2.x tidak mendukung meneruskan perintah TRIM). Jadi satu-satunya cara untuk mengetahui dengan pasti adalah dengan mengujinya
Matija Nalis