Apa yang tidak perlu defragmentasi? Linux atau ext2 ext3 FS?

32

Mengapa Anda tidak harus men-defrag sistem Linux? Karena menggunakan sistem file ext2 / ext3, atau karena itu Linux?

Itu relevan, karena saya memiliki sistem boot ganda (W7 / Ubuntu) dan partisi umum (NTFS) yang dapat diakses oleh kedua sistem. Jika saya menggunakan partisi ini dengan Linux, apakah akan terfragmentasi?

Masalah lain adalah wadah Truecrypt. Saya juga mengaksesnya dengan Linux dan Windows, dan mereka FAT32. Apakah mereka terfragmentasi oleh Linux yang mengoperasikannya?

xyz
sumber
2
Jawaban yang lain baik tetapi tinggalkan satu bit penting: Semua sistem file: ext2 / 3/4 dan NTFS akan memecah file cukup banyak ketika ruang disk rendah. Jika Anda ingin mencegah fragmentasi, jangan izinkan penggunaan sistem file Anda melebihi 90%.
Zan Lynx
1
Jika Anda menggunakan ext4, maka Anda akan terkejut melihat berapa banyak fragmentasi yang dapat Anda miliki ketika Anda menjalankan e4defrag -v .di pohon direktori, terutama jika itu berisi, katakanlah, file yang diunduh dengan klien torrent (meskipun beberapa memang menggunakan fallocate/ posix_fallocate).
rbrito
Meskipun pertanyaannya tunduk pada pendapat pribadi, saya pikir itu lebih bergantung pada fakta aktual.
Julie Pelletier

Jawaban:

27

Berikut ini adalah artikel tentang How To Geek tentang bagaimana ext2 / ext3 mengalokasikan file pada disk. Dan mereka juga memiliki artikel yang bertanya, " Apakah Anda benar-benar perlu defrag ?"


Tentang mengapa FAT menjadi terfragmentasi:

"Ketika Anda menyimpan file ke sistem file FAT, [file disimpan] sedekat mungkin dengan awal disk. Ketika Anda menyimpan file kedua, [file disimpan] tepat setelah file pertama - dan sebagainya aktif. Ketika file asli bertambah besar, mereka akan selalu terfragmentasi. Tidak ada ruang terdekat untuk berkembang. "
-Bagaimana Melakukan Geek

Dan wikipedia memiliki informasi lebih lanjut tentang fragmentasi FAT .

Tentang cara EXT2,3,4 mengalokasikan file:

"ext2, ext3, dan sistem file ext4 [...] mengalokasikan file dengan cara yang lebih cerdas. Alih-alih menempatkan beberapa file berdekatan satu sama lain pada hard disk, sistem file Linux menyebarkan file yang berbeda di seluruh disk, meninggalkan sejumlah besar ruang kosong di antara mereka. "
-Bagaimana Melakukan Geek

(Dan lebih banyak info tentang defragmentasi pada ext3, dari wikipedia )

"Sistem file Linux modern menjaga fragmentasi seminimal mungkin dengan menjaga semua blok dalam satu file tetap berdekatan, bahkan jika mereka tidak dapat disimpan dalam sektor-sektor yang berurutan. Beberapa sistem file, seperti ext3, secara efektif mengalokasikan blok bebas yang terdekat dengan yang lain blok dalam file. Oleh karena itu tidak perlu khawatir tentang fragmentasi dalam sistem Linux. "
- TLDP

dougBTV
sumber
4
Jawaban bagus! Tetapi Anda harus menambahkan sedikit konten. Idenya adalah bahwa setiap jawaban di StackExchange harus mencukupi dengan sendirinya. Jika tautan pertanyaan Anda rusak, jawaban Anda tidak akan membantu, jadi Anda harus memberikan penjelasan yang cukup di posting Anda dan kemudian memberikan tautan untuk dibaca lebih lanjut.
lgeorget
1
Terima kasih @ lororget - Saya menyempurnakan jawaban dengan beberapa kutipan arahan sehingga selalu ada beberapa konten untuk dibaca di "mengapa". Saya menghargai masukan / kritik konstruktif Anda !!
dougBTV
"Ketika Anda menyimpan file ke sistem file FAT, itu menyimpan". Tidak masuk akal. Apa itu"? FAT adalah format sistem file. Ini menjelaskan di mana Anda dapat menyimpan, tetapi itu tidak membatasi Anda untuk satu lokasi. Bahkan, OS memutuskan. Tetapi ada banyak OS yang berbeda yang dapat menulis ke FAT, dan masing-masing membuat keputusan sendiri.
MSalters
@MSalters - setuju. Saya akan mengedit bagian yang dikutip untuk menghilangkan ketidakjelasan itu.
dougBTV
Vaguery hanya disembunyikan sekarang. Pernyataan itu masih agak absolut (di mana "FAT" menyimpan) sementara seluruh spesifikasi FAT mengatakan tidak ada hal seperti itu. Bahkan, tautan Wikipedia yang Anda kutip secara langsung membantahnya: ia secara spesifik mengatakan bahwa Windows memilih lokasi untuk file kedua tidak langsung setelah file pertama. ("memilih area bersebelahan besar di muka")
MSalters
23

Fragmentasi selalu menjadi masalah, apa pun sistem berkasnya. Ext3 / Ext2, bagaimanapun, telah meminimalkan masalah ke titik di mana sebagian besar admin hanya beroperasi seolah-olah itu bukan masalah. Ini diminimalkan dengan menggunakan penjadwal I / O yang kompeten dan oleh sistem file meninggalkan ruang tambahan setelah setiap file untuk mengakomodasi pertumbuhan. Di atas itu, fragmen tambahan disimpan lebih dekat bersama sehingga bahkan ketika ada fragmentasi, efeknya sangat diredam. Perpindahan ext4 ke ekstensi juga dimaksudkan untuk membantu mengurangi fragmentasi lebih jauh.

Fragmentasi masih ada, ext2 memiliki alat defragmentasi offline, ext4 mendapatkan yang online dan btrfs (hanya karena terkait dengan pertanyaan) sudah memiliki defrag online. Jika Anda menggunakan ext3, satu-satunya pilihan nyata Anda adalah mengonversi ke ext4 (via tune2fs) atau mencoba melihat seberapa besar keberuntungan yang Anda miliki dengan alat ruang pengguna seperti shake.

Bergantung pada tipe I / O yang sedang dijalani sistem file Anda, itu masih bisa menjadi masalah bahkan pada level tidak aktif, itulah sebabnya alat online dianggap berguna untuk memulainya.

Untuk pertanyaan tentang FAT32, fragmentasi tidak terjadi ketika Anda hanya mengoperasikan file, itu terjadi ketika Anda menulis ke file. Untuk menjawab pertanyaan Anda secara langsung, fragmentasi adalah aspek dari desain sistem file, sehingga sistem file FAT32 Anda memiliki potensi untuk fragmentasi setiap kali Anda menulis sesuatu padanya.

Bratchley
sumber
"Ini diminimalkan dengan menggunakan penjadwal I / O yang kompeten". Ada sesuatu yang tidak beres dengan ungkapan itu.
Faheem Mitha
Terima kasih sudah menangkapnya. Saya agak buruk untuk merevisi bahasa saya tanpa memperbaiki masalah yang disebabkan oleh revisi tersebut dengan tata bahasa kalimat kalimat secara keseluruhan.
Bratchley
Ini jawaban yang bagus. Saya akan menambahkan sesuatu tentang Kontrak Karya (copy on write). Sudah ada hubungan dekat dengan apakah fs akan terfragmentasi.
Martin Sugioarto
4

Menjawab pertanyaan Anda, satu per satu:

Mengapa Anda tidak harus men-defrag sistem Linux? Karena menggunakan sistem file ext2 / ext3 atau karena itu Linux?

Karena ext2 / 3/4 memiliki pendekatan berbeda tentang file dan folder, sehingga mereka hampir tidak terfragmentasi. Yang lain sudah menjawabnya, dan Anda bisa membaca lebih detail di sini

Itu relevan, karena memiliki sistem boot ganda (W7 / Ubuntu) dan partisi umum (NTFS) yang dapat diakses oleh kedua sistem. Jika saya menggunakan partisi ini dengan Linux, apakah akan terfragmentasi?

Ya, itu bisa terfragmentasi. Bukan masalah apakah Windows atau Linux atau apa pun yang mengaksesnya, ini adalah bagaimana setiap sistem file menangani ukuran file, bagaimana ia menyimpan semua blok itu, apakah itu meninggalkan ruang kosong di antara setiap file ...

Masalah lain adalah wadah Truecrypt. Saya juga mengaksesnya dengan Linux dan Windows, dan mereka FAT32. Apakah mereka terfragmentasi oleh Linux yang mengoperasikannya?

Wadah Truecrypt adalah file, untuk semua hal praktis. Saat Anda membuat wadah menggunakan TrueCrypt, Anda membuat file dengan ukuran yang Anda pilih. Untuk sistem operasi Anda, sama seperti file lainnya. Jika Anda membuat salinannya, dll, mungkin salinan itu mungkin akhirnya akan terpecah-pecah.

Tetapi, ingat, tidak pernah baik memiliki banyak salinan dari wadah yang sama, mungkin membantu mengurangi keamanannya. Selalu buat wadah baru.

Ketika Anda menyimpan, menghapus, menyalin, memindahkan, dll, file di dalam wadah, sistem operasi tidak mengetahuinya, itu sama dengan membuka, mengedit, dan menyimpan file lain, tanpa mengubah ukurannya.

Dan jika Anda khawatir tentang keamanan truecrypt tentang fragmentasi, lakukan riset tentang penggunaan truecrypt dengan SSD: karena SSD mencoba untuk meningkatkan keausan semua memori di dalamnya, Anda mungkin memiliki efek yang sama dengan menyalin wadah di sekitar.

woliveirajr
sumber
3

Pada akhirnya, tergantung pada driver sistem file di dalam OS.

Sistem file ext2 dan FAT keduanya metode untuk merekam blok mana pada disk milik file mana. Ketika tidak semua blok file berdekatan, file disebut terfragmentasi. Tetapi seperti yang seharusnya sudah jelas, fragmentasi disebabkan oleh strategi alokasi blok ketika menulis file, bukan oleh bagaimana Anda kemudian merekam blok itu.

Apa yang membuat perbedaan adalah seberapa jauh ke depan driver sistem file dapat terlihat. Jika pengemudi tahu ada 10 blok lagi untuk ditulis, ia dapat memilih area bebas yang berdekatan dan menghindari fragmentasi di masa depan. Ini tergantung pada arsitektur driver, yang khusus untuk OS. Tetapi pencarian ruang bebas yang sama persis dapat dilakukan pada FAT dan ext2.

Faktanya, ext2 dan FAT tidak terlalu berbeda dari yang Anda kira. Saya telah menulis bagian ext2 dari bootloader di atas kode FAT yang ada, dan itu membutuhkan kurang dari 100 baris kode tambahan.

MSalters
sumber