Apa itu metadata, dan bagaimana metadata membantu dalam proses "fsck"?


8

Jika saya memahaminya dengan benar, "fsck" digunakan dalam sistem UNIX untuk memeriksa konsistensi internal dalam disk setelah terjadi kerusakan. Saya bertanya-tanya, lalu, bagaimana ia menggunakan "metadata" untuk memastikan bahwa semua yang ada di sistem file konsisten, misalnya langkah apa yang perlu dilakukan proses fsck untuk memulihkan dan memperbaiki?

-> edit: itu juga akan sangat membantu jika seseorang dapat mengklarifikasi apa yang dimaksud dengan "write-through sinkron" dalam gambar ini juga.


Sepertinya ini lebih pada topik tentang U&L, mungkin.

Jawaban:


13

Metadata adalah informasi tentang data. Jika Anda berpikir tentang file teks, urutan huruf dari file teks adalah data aktual file tersebut. Namun, file tersebut memiliki nama, pemilik, tanggal pembuatan, lokasi pada media penyimpanan, dll. Semua informasi ini adalah metadata. Perhatikan bahwa metadata dapat ditangani dengan cara yang sama dengan data. Sebagai contoh, Unix menyimpan metadata file dalam file data yang disebut direktori (atau folder dalam era komputasi baru ini :-)

Sistem file Unix menggunakan unit penyimpanan dasar yang disebut inode . Inode individual dapat berisi data file aktual, informasi direktori (metadata), atau tidak digunakan (gratis). Perhatikan bahwa tindakan membuat file baru melibatkan mengubah status inode dari bebas menjadi dialokasikan, menulis data ke file baru, dan menulis metadata ke file direktori. Dimungkinkan bagi komputer untuk mogok di tengah operasi jenis ini, dalam hal ini sistem file dapat rusak .

Pemeriksaan sistem file terdiri dari membaca semua inode dan berusaha menyelesaikan sebanyak mungkin masalah korupsi. Sebagai contoh, anggaplah sebuah inode tidak ada dalam daftar inode gratis, tetapi tidak ada entri direktori yang mengatakan bahwa inode ini adalah bagian dari file di direktori mana pun yang diketahui oleh sistem file. Inode ini dapat ditempatkan kembali pada daftar inode gratis.

Synchronous write-thru adalah cara melakukan penulisan ke disk dengan cara yang memastikan bahwa jika terjadi kerusakan, sistem file dapat dipulihkan. Misalnya, ketika Anda membuat file baru, Anda perlu mengalokasikan inode, membuat inode dengan set metadata-nya, kemudian memperbarui file yang berisi informasi direktori. Dengan write-thru yang sinkron , ini dilakukan sebagai tindakan terpisah, satu per satu, dalam urutan itu. Jika kerusakan terjadi sebelum direktori ditulis, maka inode dapat ditempatkan kembali pada daftar gratis, dan pembuatan file tidak terjadi.

Jenis lain dari pemeriksaan sistem file juga dimungkinkan.


6

Dalam konteks sistem file Unix atau Linux, "metadata" adalah informasi tentang file: ID pengguna dari siapa yang memilikinya, izin, jenis file (khusus, reguler, pipa bernama, dll) dan yang memblokir disk yang digunakan file. Itu semua biasanya disimpan dalam struktur di-disk yang disebut "inode". Salah satu bagian dari informasi dalam inode adalah berapa banyak "tautan" ke file tersebut. File biasa biasanya memiliki 1, tetapi direktori (yang sebagian besar merupakan file dengan tanda tipe file "I'm a directory") memiliki setidaknya 2 tautan. Segala sesuatu yang terlihat dalam sistem file memiliki satu tautan dari direktori tempat ia muncul, tetapi karena setiap direktori memiliki "." nama serta nama biasa, mereka memiliki 2 tautan.

fsckdapat memindai "blok inode" sistem file (blok-disk yang berisi struktur data inode) untuk menemukan inode yang memiliki jumlah tautan lebih besar dari 0. File yang diwakili oleh inode dengan jumlah tautan lebih besar dari 0 akan muncul dalam direktori di suatu tempat. Jika inode itu tidak muncul di direktori, fsckletakkan file dalam direktori yang terkenal, biasanya "hilang + ditemukan" di bagian atas sistem file. Perhatikan bahwa sistem file Unix / Linux biasanya tidak memiliki metadata dalam inode tentang direktori mana milik inode, hanya informasi dalam file direktori tentang file mana direktori berisi.

fsckdapat menggunakan metadata lain seperti blok-disk yang berisi data file. fsckdapat memeriksa apakah disk-blok yang dikatakan inode milik file muncul di "daftar file" yang tidak dialokasikan sistem disk. Berpotensi fsckdapat memeriksa apakah dua atau lebih inode berisi blok-disk yang sama, yang akan menunjukkan semacam korupsi multi-alokasi.

Alokasi blok disk untuk file muncul di in-disk inode. Struktur pohon keanggotaan direktori dari sistem file muncul di direktori. Inode tidak muncul, dan tidak dialokasikan ke, direktori. fsckmemanfaatkan pemisahan ini untuk melakukan perbaikan. Ini sangat berbeda dari sistem seperti MS-DOS atau Windows awal, di mana "tabel alokasi file" diadakan struktur pohon (keanggotaan direktori) dan alokasi blok disk. Corrupt the "FAT" dan Anda harus pergi memindai blok disk untuk melihat apa yang dikandungnya, dan bagaimana mereka bisa cocok bersama.


5

Metadata adalah "Data tentang Data".

Dalam kasus sistem file * nix, metadata yang digunakan oleh fsckdari header pada setiap blok data menunjuk kembali ke entri direktori atau blok data berikutnya dan entri yang sesuai dalam direktori. fsckmemindai blok dan memeriksa apakah entri direktori cocok dan bahwa forward pointer ke blok berikutnya sudah benar.

Ini sangat bervariasi antara sistem file. Sebenarnya apa yang disimpan metadata dan di mana itu disimpan adalah apa yang paling membedakan berbagai sistem file * nix. Yang lebih modern juga menyimpan file log perubahan ke struktur direktori.


Hanya ingin tahu, tetapi apakah Anda tahu bagaimana atau di mana implementasi modern menyimpan metadata pada disk?
Kaitlyn Mcmordie

1
@KlynlynMcmordie, tergantung pada fs. Untuk ext [234], sebagian besar metadata disimpan dalam inode file. Nama disimpan dalam direktori, yaitu bagian data dari file yang memiliki flag direktori dan format spesifik untuk data utama mereka. Data file disimpan dalam blok data, dan inode disimpan dalam tabel inode, yang dialokasikan ketika fs diformat. Data lain dalam inode termasuk pemilik, izin, cap waktu akses, dan petunjuk ke blok data.
psusi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.