Filesystem apa untuk LVM disk besar (8 TB)?

21

Saya memiliki server Linux dengan banyak disk 2 TB, semua saat ini dalam LVM menghasilkan sekitar 10 TB ruang. Saya menggunakan semua ruang ini pada partisi ext4, dan saat ini memiliki sekitar 8,8 TB data.

Masalahnya adalah, saya sering mendapatkan kesalahan pada disk saya, dan bahkan jika saya mengganti (artinya, saya menyalin disk lama ke yang baru dengan dd maka saya menempatkan yang baru di server) mereka segera setelah kesalahan muncul, Saya sering mendapatkan sekitar 100 MB data rusak di dalamnya. Itu membuat e2fsck menjadi gila setiap kali, dan seringkali membutuhkan waktu seminggu untuk mendapatkan sistem file ext4 dalam keadaan waras lagi.

Jadi pertanyaannya adalah: Apa yang akan Anda rekomendasikan untuk saya gunakan sebagai sistem file pada LVM saya? Atau apa yang akan Anda rekomendasikan untuk saya lakukan sebagai gantinya (saya tidak benar-benar membutuhkan LVM)?

Profil sistem file saya:

  • banyak folder dengan ukuran total yang berbeda (beberapa berjumlah 2 TB, beberapa berjumlah 100 MB)
  • hampir 200.000 file dengan ukuran berbeda (3/4 di antaranya sekitar 10 MB, 1/4 antara 100 MB dan 4 GB; Saat ini saya tidak bisa mendapatkan lebih banyak statistik pada file karena partisi ext4 saya benar-benar rusak selama beberapa hari)
  • banyak yang membaca tetapi sedikit yang menulis
  • dan saya perlu toleransi kesalahan (saya berhenti menggunakan mdadm RAID karena tidak suka memiliki SATU kesalahan pada seluruh disk, dan saya kadang-kadang gagal disk, yang saya ganti sesegera mungkin, tetapi itu berarti saya bisa mendapatkan data yang rusak pada sistem file saya)

Masalah utama adalah disk gagal; Saya bisa kehilangan beberapa file, tetapi saya tidak bisa kehilangan semuanya pada saat yang bersamaan.

Jika saya terus menggunakan ext4, saya mendengar bahwa saya sebaiknya mencoba membuat sistem file yang lebih kecil dan "menggabungkan" mereka, tetapi saya tidak tahu caranya.

Saya mendengar btrf akan menyenangkan, tetapi saya tidak dapat menemukan petunjuk bagaimana mengelola kehilangan sebagian disk (atau seluruh disk), ketika data TIDAK direplikasi ( mkfs.btrfs -d single?).

Setiap saran tentang pertanyaan akan diterima, terima kasih sebelumnya!

alphatiger
sumber
1
Persis apa kesalahan disk yang Anda dapatkan. Itu seharusnya memberi petunjuk
Soham Chakraborty
Bad sector, seringkali hanya satu atau dua bad sector pada keseluruhan disk ...
alphatiger
Itu berarti disk Anda rusak. Hampir tidak ada hubungannya dengan sistem file. Jika disk buruk, tidak peduli apa pun yang Anda gunakan, akan berguna. Seperti yang disebutkan orang lain, gunakan disk RAID dan / atau beli disk perusahaan. Juga, cari pengontrol kualitas juga.
Soham Chakraborty
Yap, saya tahu, itu sebabnya saya mengganti disk yang rusak. Maaf jika pertanyaan saya tidak jelas. Tapi tetap saja, saya berpikir bahwa beberapa filesystem akan berperilaku lebih baik dengan data yang rusak ...
alphatiger
Anda benar-benar harus mengganti bagian perangkat keras Anda yang rusak. Ini seperti melihat dummy uji tabrakan setelah sebuah mobil telah dikendarai ke tembok 200 km / jam. "Oh, lihat! Kaki kirinya hampir baik-baik saja! Tesnya berhasil!" ... tidak ada filesystem yang dapat membantu Anda jika perangkat keras yang mendasarinya membusuk. XFS memiliki fsck lebih cepat daripada ext *, dan setelah cukup waktu berlalu dan sistem file menjadi lebih matang, mungkin btrfs juga akan berfungsi. Lalu ada ZFS tetapi di Linux kondisinya agak menyedihkan.
Janne Pikkarainen

Jawaban:

22

Ini bukan masalah sistem file, ini keterbatasan fisik disk. Ini beberapa data:

Drive SATA biasanya ditentukan dengan dipulihkan tingkat kesalahan membaca (URE) dari 10 ^ 14. Itu berarti bahwa 1 byte per 12TB akan hilang bahkan jika disk bekerja dengan baik.

Ini berarti bahwa tanpa RAID Anda akan kehilangan data bahkan jika tidak ada drive gagal - RAID adalah satu-satunya pilihan Anda.

Jika Anda memilih RAID5 (total kapasitas n-1, dimana n = jumlah disk) itu masih belum cukup. Dengan 10TB RAID5 yang terdiri dari 6 x 2TB HDD, Anda akan memiliki peluang 20% ​​satu kegagalan drive per tahun dan dengan satu disk gagal, karena URE Anda akan memiliki peluang 50% untuk berhasil membangun kembali RAID5 dan memulihkan 100% data Anda .

Pada dasarnya dengan kapasitas tinggi dari disk dan URE relatif tinggi Anda perlu RAID6 untuk menjadi aman bahkan kegagalan disk lagi tunggal.

Baca ini: http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162

c2h5oh
sumber
3
Tunggu, URE berarti Kesalahan Baca yang Tidak Dapat Dipulihkan, tetapi ini tidak berarti bahwa disk tersebut MEMILIKI kesalahan tersebut. Bacaan berikutnya mungkin (dan mungkin akan) mengembalikan bit yang benar. OS mungkin hanya akan membaca kembali sektor ini dan mendapatkan data yang benar. Anda juga lupa berbicara tentang SMART: sebelum suatu sektor rusak secara permanen, SMART akan mencoba membaca / menulis data dari / ke sana. Jika mendeteksi terlalu banyak kegagalan, SMART hanya memindahkan konten sektor di tempat lain dan menandai sektor tersebut sebagai BAD dan tidak ada yang akan dapat menulis lagi.
Avio
Jadi, Anda hanya menyarankan untuk membeli berton-ton disk tanpa meminta MENGAPA disk-nya rusak. Ini bisa jadi masalah panas, bisa juga masalah dengan pengontrol SATA yang salah, bisa juga masalah konektor SATA yang buruk, dll. Dll.
Avio
@ Avi Apa yang saya katakan adalah bahwa dengan 10TB data, Anda akan membaca kesalahan karena keterbatasan hard disk, bahkan jika semua disk, pengontrol SATA, konektor SATA dll dalam kondisi sempurna dan bekerja sesuai dengan spesifikasi. Saya juga mengatakan bahwa bahkan jika Anda memutuskan untuk menggunakan RAID untuk mengurangi bahwa Anda harus pergi dengan RAID6 karena kapasitas disk + URE membuat bahkan RAID5 tidak cukup dapat diandalkan. Bahkan kegagalan satu drive pada RAID5 memiliki peluang kehilangan data yang tinggi (50% FFS!).
C2H5OH
1
@ Avi U di URE adalah singkatan dari Unrecoverable seperti yang hilang untuk selamanya.
C2H5OH
Ini bisa menjadi masalah sistem file, jika Anda menggunakan salinan pada sistem file write seperti btrfs atau xfs Anda sangat mungkin memulihkan versi file sebelumnya, jadi hanya kehilangan perubahan terakhir pada file. (jika itu pernah berubah)
Jens Timmerman
13

Bantulah diri Anda sendiri dan gunakan RAID untuk disk Anda, bahkan bisa berupa perangkat lunak RAID dengan mdadm. Juga pikirkan tentang mengapa Anda "sering mendapatkan kesalahan pada disk Anda" - ini tidak normal kecuali ketika Anda menggunakan drive SATA kelas desktop murah alih-alih disk kelas RAID.

Setelah itu, filesystem tidak lagi penting - ext4, xfs adalah pilihan yang bagus.

Sven
sumber
1
Saya setuju bahwa saya harus;) tetapi saya tidak menggunakan RAID karena berbagai alasan. Yang utama adalah harganya, karena harganya 2-3 kali lebih mahal, dan saya tidak mampu membelinya. Alasan kedua adalah bahwa terakhir kali saya menggunakan RAID 5, saya cukup beruntung untuk mendapatkan dua disk yang buruk sebelum aku bisa menghubungkan yang baru dan resync itu (saya tidak memiliki disk cadangan pada saat itu, saya harus menunggu untuk baru; Saya setuju bahwa dengan disk kelas RAID, saya akan memiliki masalah ini). Alasan ketiga adalah bahwa seiring dengan bertambahnya data yang saya simpan, saya menambahkan disk baru dengan ukuran lebih besar secara progresif, yang tidak dapat saya lakukan dengan konfigurasi RAID.
alphatiger
Jadi saya mencoba melihat apakah ada sistem file yang seseorang akan merekomendasikan saya untuk digunakan dalam konfigurasi di mana saya tidak bisa mengandalkan data yang tidak rusak. Tetap saja, terima kasih atas jawaban Anda!
alphatiger
4
Jadi Anda mengatakan data Anda tidak sebanding dengan biaya tambahan? Jika Anda tidak mampu memiliki setidaknya dua salinan data Anda, maka Anda harus menganggapnya hilang. Anda benar bahwa RAID5 mungkin bukan pilihan yang baik, Anda mungkin harus melihat RAID6 atau RAID10.
Zoredache
@alphatiger: Cakram terlalu mahal jika waktu dan data Anda terlalu murah.
Reinstate Monica - M. Schröder
8

Saya beruntung dengan ZFS, Anda dapat memeriksa untuk melihat apakah itu tersedia pada distro apa pun yang Anda gunakan. Peringatan yang adil, itu mungkin berarti membangun kembali seluruh sistem Anda, tetapi memberikan kinerja yang sangat bagus dan toleransi kesalahan.

TMN
sumber
Saat ini saya menggunakan Debian GNU / Linux, sepertinya ada implementasi FUSE, tetapi tidak ada paket (karena masalah lisensi). Saya mungkin akan mencobanya (setelah mengkompilasi dari sumber, karena menggunakan FUSE itu tidak terlalu bagus untuk output tinggi), saya tidak khawatir harus membangun kembali seluruh sistem file saya. Terima kasih!
alphatiger
+1 untuk ZFS. RAID tradisional akan merusak data secara diam-diam karena tidak cukup cerdas untuk mengetahui kapan blok salah, atau cara memperbaikinya. ZFS di sisi lain akan mendeteksi blok yang korup (melalui checksum) dan memperbaikinya dari salinan cermin yang dikenal baik. Menjalankan ZFS di bawah FUSE, meskipun tidak ideal, akan berkinerja cukup baik untuk banyak beban kerja. Yang sedang berkata, Anda harus memuat uji aplikasi Anda sebelum menggunakan ini di lingkungan produksi.
bahamat
1
+1 lainnya untuk ZFS. Hampir semua server di sini menjalankan Linux dan saya sangat menyukainya, tetapi ZFS telah terbukti sangat berguna bagi saya dalam 3 tahun terakhir sehingga saya benar-benar telah melalui upaya belajar dan mengatur FreeBSD pada mesin penyimpanan besar untuk dapat menggunakan ZFS tanpa masalah lisensi atau kinerja.
ssc
Saya menjalankannya di bawah Solaris pada Sun workstation lama saya, dan kinerjanya tidak kalah menakjubkan, mengingat perangkat kerasnya (single-core Opteron @ 2.2GHz dengan memori 3G dan sepasang drive SATA 250G).
TMN
8

Saya menambahkan disk baru dengan ukuran lebih besar secara progresif

Karena Anda tertarik menggunakan LVM, dan Anda ingin menangani banyak drive, jawaban sederhananya adalah dengan menggunakan fitur mirror yang merupakan bagian dari LVM. Cukup tambahkan semua volume fisik ke LVM Anda. Saat Anda membuat volume logis, lewati --mirrorsopsi. Ini menggandakan data Anda.

Pilihan lain mungkin hanya dengan memasang beberapa pasang RAID1. Kemudian tambahkan semua volume RAID1 sebagai PV ke VG Anda. Lalu kapan pun Anda ingin memperluas penyimpanan Anda, beli saja sepasang disk.

Sakit kepala
sumber
7

Anda harus benar-benar menggunakan RAID 5, 6, 10, 50, atau 60. Berikut ini beberapa sumber untuk memulai:

info latar belakang tentang RAID

howto & setup

Lihat tautan lezat saya untuk tautan RAID tambahan: http://delicious.com/slmingol/raid

slm
sumber
Lihat komentar saya pada jawaban SvenW untuk melihat mengapa saya tidak benar-benar menginginkan RAID. (Bahkan, saya sudah melakukan setup beberapa perangkat lunak RAID di perusahaan yang mampu ...) Tetap saja, terima kasih!
alphatiger
Saya selalu menggunakan drive komoditas untuk RAID, tidak pernah menggunakan yang dinilai untuk penggunaan RAID dan tidak pernah memiliki masalah dengan itu selama Anda memilih RAID yang memiliki cukup redundansi di dalamnya (RAID 6 atau RAID 60). Menggunakan RAID 6 Anda memerlukan nomor genap. Anda dapat menumbuhkan RAID dengan cukup mudah dengan mengganti anggota yang ada dengan disk yang lebih besar dan kemudian berkembang ke ruang disk yang lebih baru.
slm
4

Jika Anda benar-benar khawatir tentang korupsi data, saya akan merekomendasikan sistem file checksummed seperti zfs dan btrfs - meskipun perhatikan bahwa btrfs masih dianggap dalam pengembangan dan tidak siap-produksi.

Tidak ada jaminan bahwa data yang dibaca (bahkan berhasil dibaca) dari disk akan benar. Blok memiliki checksum, tetapi checksum sederhana yang tidak selalu menangkap kesalahan. Sistem file yang lebih baru seperti ZFS melampirkan checksum yang lebih mampu ke file dan dapat (dan dilaporkan melakukannya) menangkap dan memperbaiki kesalahan data yang tidak diperhatikan oleh hard disk atau pengontrol RAID.

tylerl
sumber
1

Seperti yang dikatakan @ c2h5oh , Unrecoverable sangat penting - artinya disk telah mencoba dan gagal membaca kembali sektor ini.

Dalam pengalaman saya, setelah disk mulai menghasilkan kesalahan baca yang tidak dapat dipulihkan (URE), beberapa data hilang selamanya, dan satu-satunya harapan Anda adalah segera mencadangkan semua data menggunakan GNU ddrescue , yang dapat mencoba kembali sektor yang gagal serta melewati yang tidak dapat dipulihkan.

Dengan asumsi Anda memiliki cadangan, mereka mungkin telah gagal karena URE, dan tentu saja akan memiliki beberapa file yang rusak, sehingga Anda harus mengumpulkan set lengkap data dari berbagai cadangan dari sistem file yang sama.

Jawaban lain yang merekomendasikan ZFS layak dibaca, karena fitur penggosokan data dan RAID yang berkelanjutan akan membantu menjaga data Anda lebih aman di masa mendatang - meskipun masih bukan pengganti untuk cadangan, yang juga melindungi terhadap kesalahan pengguna dan admin.

Saya hanya akan menggunakan LVM jika Anda tidak memerlukan snapshot - itu tidak terintegrasi dengan baik dengan RAID, tidak termasuk data scrubbing / checksum data, dan Anda masih perlu cadangan, jadi sesuatu seperti ZFS mungkin merupakan pilihan yang lebih baik. Lihat jawaban ini tentang masalah dan risiko LVM untuk lebih lanjut.

RichVel
sumber