Saat Anda menggunakan ext4, Anda dapat memeriksa badblock dengan perintah e2fsck -c /dev/sda1
atau apa pun. Ini akan "daftar hitam" blok dengan menambahkannya ke inode blok buruk.
e2fsck -c
berjalan badblocks
di hard disk yang mendasarinya. Anda dapat menggunakan badblocks
perintah secara langsung pada volume fisik LVM (dengan asumsi bahwa PV sebenarnya adalah hard disk, dan bukan jenis perangkat virtual lain seperti perangkat RAID perangkat lunak MD), sama seperti Anda akan menggunakan perintah itu pada hard disk yang berisi sistem file ext.
Itu tidak akan menambahkan segala jenis informasi blokir buruk ke sistem file, tetapi saya tidak benar-benar berpikir bahwa itu adalah fitur yang berguna dari sistem file; hard disk seharusnya menangani blok buruk.
Bahkan lebih baik daripada badblocks
menjalankan selftest SMART pada disk (ganti /dev/sdX
dengan nama perangkat hard disk Anda):
smartctl -t long /dev/sdX
smartctl -a /dev/sdX | less
Tes itu sendiri akan memakan waktu beberapa jam (itu akan memberi tahu Anda berapa lama). Setelah selesai, Anda dapat menanyakan hasilnya dengan smartctl -a
, mencari log swauji. Jika tertulis "Selesai berhasil", hard disk Anda baik-baik saja.
Dengan kata lain, bagaimana saya bisa memeriksa blok buruk untuk tidak digunakan dalam LVM?
Seperti yang saya katakan, hard disk itu sendiri akan memastikan tidak menggunakan blok yang rusak dan juga akan memindahkan data dari blok tersebut; itu bukan sesuatu yang harus dilakukan oleh sistem file atau LV. Di sisi lain, ketika hard disk Anda memiliki lebih dari hanya beberapa blok buruk, Anda tidak ingin sesuatu yang memindahkannya, tetapi Anda ingin mengganti seluruh hard disk karena gagal.
-c
dilakukannya sebelum memanggil sesuatu yang tidak masuk akal.dd
. Lebih sering daripada yang Anda pikirkan, media sebenarnya baik-baik saja dan datanya rusak, jadi menulis di atasnya berfungsi dengan baik tanpa perlu memetakan kembali.dd
" - tetapi kamu mungkin masih tidak seharusnya. Jika Anda melakukanmd
penggerebekan, itu bisa mengatasi masalah untuk Anda . @derobert mungkin akan tahu apa yang harus dilakukan ketika disk bukan bagian darimd
serangan :)Saya cukup yakin LVM tidak menangani blok buruk; mengharapkan penyimpanan yang mendasarinya. Dan kebanyakan, jika tidak semua, hard disk modern melakukannya. Anda mungkin perlu melakukan penulisan ke sektor ini, tetapi disk tersebut harus memetakannya kembali. (Anda mungkin perlu melakukan pemindaian permukaan offline terlebih dahulu, dengan misalnya,
smartctl /dev/sda -t offline
).Yang mengatakan, LVM tidak benar-benar memindahkan data kecuali Anda bertanya, dengan misalnya
pvmove
,. Jadi, Anda dapat menggunakan fitur badblocks ext4; Anda hanya perlu memeriksa kembali apakah ada blok buruk jika dijalankanpvmove
. Tidak ada operasi umum (sepertilvextend
) yang memindahkan data.Perluas tidak memindahkan data karena LVM menyimpan peta yang mengatakan "luasan logis 0–99 adalah luasan fisik 200-299", dan kemudian ketika Anda memperluasnya, itu hanya menambahkan "luasan logis 100-199 adalah luasan fisik 100-199". Atau bahkan "luasan logis 100–149 adalah luasan fisik 50-99; luasan logis 150-199 adalah luasan fisik 140-189". LVM tidak peduli bahwa luasan fisik tidak dalam urutan, atau tidak berdekatan.
sumber
pvck
dapat memeriksa metadata LVM, setelah itu konsistensi adalah pekerjaan filesystem. LVM hanya tentang manajemen volume sehingga tidak perlu peduli jika ruang yang membentuk tingkat tertentu buruk karena perangkat lunak tingkat yang lebih tinggi menangkap masalah tersebut. Metadata LVM hanya mengambil pertama (opsional juga sektor terakhir) dari volume fisik.Jika hanya sektor pertama dan terakhir dari PV yang cukup besar (seperti yang akan Anda lihat dalam produksi) kebetulan gagal secara bersamaan, Anda pada dasarnya memiliki keberuntungan paling kecil di dunia karena hal itu sangat tidak mungkin secara astronomis. Kalau tidak, jika admin tahu banyak sektor drive telah gagal, kebanyakan orang baik-baik saja hanya dengan mengajukan hal-hal seperti ini di bawah "hard drive gagal secara permanen dan perlu diganti."
Jika
pvck
mengembalikan kesalahan, Anda dapat memeriksa untuk melihat apakah metadata LVM Anda dicadangkan di/etc/lvm
suatu tempat. Jika ya, Anda dapatpvcreate
menentukan salinan cadangan--restorefile
Sintaksis:
Contoh:
Jika pemulihan tidak berhasil (misalnya, jika sektor pertama buruk), Anda dapat melakukan kembali hal di atas, tetapi atur
--metadatacopies 2
(atau Anda mungkin langsung melakukannya) yang akan mencoba menulis metadata ke yang pertama dan sektor terakhir pada PV. Ketikapvscan
melakukan hal itu saat boot, ia akan memeriksa kedua tempat dan jika menemukan metadata, ia akan memverifikasi mereka terhadap checksum. Jika checksum gagal di sektor pertama tetapi berhasil di sektor terakhir Anda akan mendapatkan pesan kesalahan non-fatal.Jenis manual dan sakit, tapi sekali lagi ini adalah bagian dari alasan mengapa orang bersemangat untuk mendapatkan manajemen volume redux dengan BTRFS. Sebagian besar waktu itu tidak benar-benar masalah karena alasan derobert disebutkan, dan karena orang-orang yang benar-benar positif perlu memastikan kontinuitas data biasanya akan melakukan RAID dan memiliki strategi cadangan.
sumber