Menghindari fragmentasi ekstrim gambar sistem terkompresi pada NTFS


8

Penjelasan masalah

Saya menyimpan gambar disk windows yang dibuat dengan wbadmin pada drive NTFS, dan saya menemukan mengompres kemudian dengan kompresi NTFS memberikan 1,5-2 × ruang konservasi, masih memberikan ketersediaan penuh untuk memulihkan.

Tetapi dalam proses kompresi, file menjadi sangat terfragmentasi, biasanya di atas 100'000 fragmen untuk citra disk sistem.

Dengan fragmentasi seperti itu, defragmentasi membutuhkan waktu yang sangat lama (beberapa jam per gambar). Beberapa defragmenter bahkan tidak dapat menanganinya, mereka hanya melewatkan file atau crash.

Sumber masalahnya adalah, saya pikir, file itu dikompres oleh potongan yang disimpan secara terpisah.

Pertanyaan

Apakah ada cara (cepat) yang baik untuk mendapatkan defragmented file gambar namun tetap dikompresi (atau kompres tanpa menyebabkan fragmentasi ekstrim)? Mungkinkah ada utilitas untuk mendefrag file dengan cepat ke ruang bebas terus-menerus, atau beberapa utilitas (atau metode) untuk membuat file terkompresi yang tidak terfragmentasi dari yang tidak dikompresi?

Keterangan berdasarkan komentar / jawaban:

  1. Alat kompresi eksternal (untuk windows kernel) bukan pilihan dalam kasus saya. Mereka tidak dapat mendekompresi file dengan cepat (untuk mendekompresi file 10 Gb, saya memerlukan 10 Gb gratis, yang tidak selalu tersedia; juga, ini membutuhkan banyak waktu); mereka tidak dapat diakses ketika sistem boot dari DVD untuk pemulihan (tepat ketika saya membutuhkan gambar tersedia). Tolong, berhentilah menawarkannya kecuali jika mereka membuat file yang dikompresi secara transparan pada ntfs compact.exe.
  2. Kompresi NTFS tidak terlalu buruk untuk gambar sistem. Ini agak bagus kecuali untuk fragmentasi. Dan dekompresi tidak memakan banyak waktu CPU, masih mengurangi hambatan IO, yang memberikan peningkatan kinerja dalam kasus yang sesuai (file terkompresi non-terfragmentasi dengan rasio signifikan).
  3. Utilitas defragmentasi Defragmentasi file tanpa memperhatikan apakah mereka dikompresi. Satu-satunya masalah adalah jumlah fragmen, yang menyebabkan kegagalan defragmentasi tidak masalah apakah file yang dipecah terkompresi atau tidak. Jika jumlah fragmen tidak tinggi (sekitar 10.000 sudah ok), file terkompresi akan didefragmentasi, dan tetap dikompresi dan utuh.
  4. Rasio kompresi NTFS bisa bagus, tergantung pada file. Gambar sistem biasanya dikompresi hingga paling banyak 70% dari ukuran aslinya.

    Sepasang tangkapan layar untuk mereka yang tidak percaya, tapi ofc, Anda dapat membuat tes Anda sendiri.

  5. Saya benar-benar melakukan restorasi dari gambar yang dikompresi NTFS, baik yang terfragmentasi dan yang tidak terfragmentasi, berfungsi, tolong percaya padaku atau cukup periksa sendiri. rem: seperti yang saya temukan sekitar tahun lalu, itu tidak berfungsi di Windows 8.1. Ini masih bekerja di Windows 7, 8, dan 10.

Jawaban yang diharapkan:

metode kerja atau program untuk Windows untuk:

  1. kompres file (dengan kompresi NTFS, dan tetap dapat diakses oleh Windows Recovery) tanpa membuat banyak fragmen (mungkin ke partisi lain atau membuat salinan terkompresi; harus setidaknya 3x lebih cepat pada HDD daripada compact+ defrag),

    atau

  2. untuk secara cepat (setidaknya 3x lebih cepat dari windows defrag pada HDD) defrag file yang terfragmentasi, seperti yang berisi 100K + fragmen (harus tetap dikompresi setelah defrag).


Saya merasa sangat aneh bagi NTFS untuk mengompres sebanyak itu (karena tes dunia nyata hanya menunjukkan penurunan 2 hingga 5%). Selain itu, NTFS memiliki beberapa perlindungan mengenai fragmentasi file (seperti penjurnalan). Seberapa besar file (sebelum dan sesudah)? Juga, dari gambar, sepertinya Defraggler tidak dapat mendefrag file terkompresi.
Doktoro Reichard

1
1. Anda dapat membuat gambar jendela sendiri dan mengompresnya. Ini benar-benar mudah dikompres setidaknya 1,5x (60-70% atau ukuran asli). 2. Ya, Defraggler dan defragmeneter lainnya BISA defrag file terkompresi. Ini adalah pengalaman dunia nyata.
LogicDaemon

Juga, rasio kompresi di luar topik, tetapi di sini ada gambar nyata dari sistem Windows 7 Professional yang baru saja diinstal, kebanyakan sistem 32-bit, 3 atau 4 64-bit dengan perangkat lunak standar: i.imgur.com/C4XnUUl .png
LogicDaemon

@DoktoroReichard tergantung pada konten file. File teks dan file jarang akan memiliki rasio kompresi yang sangat baik. Biasanya saya menghindari file yang sudah dikompresi seperti file zip, gambar, file audio / video ... dan setelah mengompresi saya sering menemukan ukuran 10-20% menurun
phuclv

Jawaban:


4

Menghindari fragmentasi

Rahasianya adalah untuk tidak menulis file yang tidak dikompres pada disk untuk memulai.

Memang, setelah Anda mengompres file besar yang sudah ada itu akan menjadi sangat terpecah-pecah karena sifat dari algoritma kompresi in-place NTFS.

Sebagai gantinya, Anda dapat menghindari kelemahan ini sama sekali dengan membuat OS mengkompresi konten file secara langsung, sebelum menulisnya ke disk. Dengan cara ini file yang dikompresi akan ditulis ke disk seperti file normal lainnya - tanpa celah yang tidak disengaja. Untuk tujuan ini, Anda perlu membuat folder terkompresi. (Cara yang sama Anda menandai file yang akan dikompresi, Anda dapat menandai folder yang akan dikompresi.) Setelah itu, semua file yang ditulis ke folder itu akan dikompres dengan cepat (yaitu ditulis sebagai aliran blok terkompresi). File-file yang dikompresi dengan cara ini masih bisa agak terfragmentasi, tetapi itu akan jauh dari kekacauan yang diciptakan kompresi NTFS di tempat.

Contoh

NTFS mengkompresi citra sistem 232 Mb menjadi 125 Mb:

  • Kompresi di tempat menciptakan 2680 fragmen kekalahan !
  • Kompresi saat terbang menciptakan 19 fragmen.

Defragmentasi

Memang benar bahwa file terkompresi NTFS dapat menimbulkan masalah bagi beberapa alat defragment. Misalnya, alat yang biasanya saya gunakan tidak bisa menanganinya secara efisien - alat itu melambat menjadi merangkak. Jangan khawatir, Contig tua yang terpercaya dari Sysinternals melakukan pekerjaan defragmenting file terkompresi NTFS dengan cepat dan mudah!


2

Membaca artikel di Wikipedia tentang kompresi NTFS :

File dikompres dalam potongan 16-cluster. Dengan 4 kB cluster, file dikompres dalam 64 kB chunk. Jika kompresi mengurangi 64 kB data menjadi 60 kB atau kurang, NTFS memperlakukan halaman 4 kB yang tidak dibutuhkan seperti cluster file jarang yang kosong — mereka tidak ditulis.

Hal ini memungkinkan waktu akses acak yang wajar - OS hanya harus mengikuti rantai fragmen.

Namun, file kompresif besar menjadi sangat terfragmentasi karena setiap potongan <64KB menjadi sebuah fragmen.

Hal pertama yang pertama. WBAdmin pada dasarnya adalah utilitas cadangan yang mengembalikan sistem lengkap. Jadi, diharapkan file outputnya besar (> 4 Gb). Seperti yang ditunjukkan oleh kutipan, file besar menjadi terfragmentasi dengan cepat. Ini karena cara NTFS kompres: bukan oleh file, tetapi oleh sektor.

Analogi yang baik adalah kue yang dipecah menjadi beberapa kotak, beberapa di antaranya tidak kosong. Ini adalah file awal. Bagian kompresi meremas potongan kue, meninggalkan ruang di dalam kotak. Karena potongan-potongan kue tidak bersama-sama, karena ruang yang dibuat, potongan-potongan yang membentuk kue menjadi terfragmentasi.

Saya masih skeptis tentang NTFS yang memberikan rasio kompresi seperti itu. Menurut tes yang dilakukan oleh MaximumCompression pada banyak file, NTFS mendapat skor terendah dalam rasio kompresi, 40% sangat sedikit. Dari pengalaman pribadi saya dapat mengatakan kepada Anda itu jauh lebih rendah dari itu, pada kenyataannya sangat rendah sehingga saya tidak pernah repot-repot menggunakannya atau saya tidak melihat efeknya.

Cara terbaik untuk menghindari fragmentasi adalah berhenti mengandalkan NTFS. Sebagian besar defraggers akan gagal memperluas atau memindahkan file yang dikompresi. Jika mereka melakukannya, NTFS tidak dapat memperluas file, atau jika ia bisa, karena proses defragmentasi akan mengisi ruang sisa dari kompresi (4kB), ekspansi akan memecah file, karena file tidak akan ditulis dalam kelompok yang berdekatan.

Ini dikatakan, dan jika Anda tidak perlu membaca file terus-menerus, gunakan beberapa format yang direkomendasikan dalam tautan di atas. 7z dan rar cukup efisien (yaitu mereka kompres dengan rasio tinggi pada waktu yang layak). Jika Anda peduli tentang ruang dan bukan tentang waktu, maka pilih algoritma tipe PAQ (meskipun Anda akan menghabiskan waktu yang sangat lama untuk mengompresi dan mendekompresi file). Ada juga algoritma cepat yang tersedia.

Jika Anda perlu membaca file terus-menerus, jangan kompres sama sekali. NTFS terlalu berantakan.


Ini (ref. Di Wikipdia) sumber sebenarnya mengandung baik, meskipun teknis, informasi tentang seluruh proses.
Doktoro Reichard

rasio kompresi di luar topik, tetapi berikut ini adalah gambar nyata dari sistem Windows 7 Professional yang baru saja diinstal, kebanyakan sistem 32-bit, 3 atau 4 64-bit dengan perangkat lunak standar: i.imgur.com/C4XnUUl.png Dengan kompresi saya benar-benar menghemat ruang disk. Dan saya dapat mendefrag file setelahnya, tetapi terlalu lama.
LogicDaemon

Dan Tentang "menghindari" kompresi NTFS: Saya melakukan ini selama bertahun-tahun, dan itu bekerja hampir tanpa cacat, kecuali untuk fragmentasi. Ini seharusnya tidak digunakan untuk file yang sering diakses karena masalah kinerja, tetapi sebagian besar file executable dan teks dikompres dengan sangat baik. Juga, file yang ditulis secara berurutan, seperti log tidak dapat terfragmentasi sebanyak itu masih dikompresi. Dan, tentu saja, gambar sistem terkompresi sangat dapat dipulihkan, dilakukan berkali-kali, dan Anda tidak perlu secara eksplisit "meluaskan" mereka, ini jelas dilakukan secara otomatis oleh driver by-block driver NTFS dalam memori.
LogicDaemon

1
Saya tidak dapat benar-benar memperdebatkan hasil (dan sebagai catatan, saya memang menyatakan hasil tes yang sebenarnya, yang mirip dengan Anda, dan pengalaman pribadi saya, yang tampaknya tanggal). Tautan yang saya berikan dalam komentar memang mengandung informasi tentang mengapa tidak mungkin untuk menghindari masalah fragmentasi. Juga dalam artikel Wikipedia itu menyatakan bahwa saat boot, Windows belum memuat perpustakaan kompresi untuk NTFS, tidak yakin tentang proses pemulihan juga. Ini mungkin memberikan wawasan.
Doktoro Reichard

Terima kasih, tapi itu bukan jawaban yang ingin saya dapatkan :) Saya berharap akan ada cara untuk mendapatkan file terkompresi tetapi tidak terfragmentasi, dengan menulisnya secara berurutan atau dengan ukuran blok yang sama seperti potongan kompresi. Atau ada program defragmentasi yang sangat efisien, yang dapat dengan cepat mendefrag file tunggal ketika ada ruang kosong yang cukup untuk itu.
LogicDaemon

0

Meskipun tidak persis apa yang diminta OP, saya memiliki pengalaman yang baik dengan perangkat lunak pihak ke-3 bernama Paragon. NTFS secara definisi merusak sesuatu filesystem Anda ketika Anda memampatkan (atau terkadang bahkan menulis) file. Ini meluas hingga mengkonsumsi banyak entri MFT, dan ... Ini buruk. Pengandar Microsoft NTFS bahkan tidak membersihkan ini ketika file terdefragmentasi. Karenanya, alat pihak ke-3 diperlukan. Paragon memungkinkan Anda untuk mem-bootnya sendiri sebagai OS (ISO image), atau menginstal ke OS Windows lain dengan akses ke sistem file target. Kemudian Anda dapat mendefrag MFT dan file. Ini sepengetahuan saya satu-satunya cara untuk memperbaiki kekurangan ini di NTFS, singkat dari memformat ulang volume.

(Saya tidak memiliki hubungan dengan alat atau pembuatnya selain itu satu-satunya hal yang saya temukan benar-benar berfungsi)

Hari ini, 2 tahun setelah pertanyaan itu tampaknya diajukan, saya lebih suka merekomendasikan deduplication - ini dapat memberi Anda lebih dari 90% penghematan disk jika gambar hanya "sedikit" berbeda. Server W2016 Nano di dalam VM bekerja dengan sangat baik, tapi saya curiga FreeNAS atau apapun yang menggunakan ZFS bisa mengatasinya.


URL apa saja atau lebih banyak nama precice daripada hanya "Paragon"? Google tidak mengerti saya. Saya tahu perusahaan perangkat lunak bernama Paragon, tetapi tidak tahu apa-apa tentang produknya yang akan mendefrag file NTFS (ada alat defrag MFT, tapi saya tidak punya masalah MFT). Dan terima kasih atas saran ZFS, saya akan memeriksanya, tapi sekali lagi, saya membutuhkannya untuk bisa boot di lapangan untuk pemulihan cepat di tempat.
LogicDaemon

-1

Windows belakangan ini memperlakukan file ZIP seperti folder. File ZIP dapat lebih dikompresi daripada file yang dikompresi NTFS dan tidak terpecah secara inheren, tidak seperti NTFS.

Mengapa tidak menguji salah satu gambar disk Anda dengan mengompresi dengan 7-zip dalam format ZIP & melihat apakah itu langsung dapat digunakan untuk memulihkan?

Jika tidak, mainkan dengan parameter kompresi 7-zip untuk memaksimalkan kompresi menggunakan format apa pun yang terbaik, misalnya, 7z. Anda dapat meningkatkan kompresi jauh melampaui NTFS dan karenanya membuat lebih banyak ruang tersedia pada disk Anda - meskipun akan lebih cepat untuk melakukan dekompresi ke disk fisik 2 atau RAM, lebih disukai pada pengontrol yang berbeda & kabel IO.

FWIW, kompresi terbayar untuk SSD non-sandman untuk disk sistem & untuk file non-media - lebih sedikit keausan pada SSD, lebih banyak ruang, dan I / O yang lebih cepat untuk file yang tidak dikompresi. Lihat http://www.tomshardware.com/reviews/ssd-ntfs-compression, 3073-9.html

Video, grafik, dan file data terkompresi lainnya (seperti .XLSX) sudah sangat terkompresi, jadi tidak ada manfaat untuk kompresi NTFS di sana. Juga untuk basis data atau surat Outlook dengan pembaruan acak. Tetapi file executable, txt, html, dll. Sangat diuntungkan.

Kompresi juga selalu menang untuk file kecil, misalnya, jika <64K dikompresi, hanya satu fragmen. Hanya kerumitan akan menjadi pemulihan jika ada masalah disk.


1
Man, Anda salah dalam banyak hal ... Terutama, windows tidak pernah memperlakukan file ZIP seperti folder. Ada alasan teknis mengapa ini bahkan tidak akan terjadi (pada dasarnya, hanya akses berurutan ke konten file). Explorer, meskipun memungkinkan mengelola ritsleting mirip dengan folder (tetapi dengan cara yang sangat terbatas, bahkan tidak mengekstrak file lain ketika saya membuka html dari zip), bukan Windows. Dan dalam pertanyaan saya jelaskan, mengapa utilitas terpisah, baik itu Explorer atau 7-Zip, tidak cocok (lihat "Komentar berdasarkan komentar / jawaban")
LogicDaemon

btw, perhatikan tentang "kurang pakai & sobek pada SSD": jika SSD tidak memiliki cukup cache, itu 2 kali lebih banyak memakai & sobek. Karena, ketika menyimpan file terkompresi, Windows pertama-tama menyimpan kluster yang tidak dikompresi, kemudian mengompres dan menyimpan yang terkompresi (kemudian menghapus yang tidak dikompresi). Ini yang menyebabkan fragmentasi dalam subjek pertanyaan saya, setelah semua. Samsung SSD pada tautan (rusak btw, hapus "file" dari tail) memiliki cache yang cukup besar.
LogicDaemon

tidak, Windows tidak pernah memperlakukan file zip dan cab sebagai folder. Anda dapat melihat kontennya (nama file / folder) secara langsung di komputer saya, tetapi Anda tidak dapat mengaksesnya secara transparan seperti disk image atau file NTFS terkompresi. Anda masih harus mengekstrak file di arsip ke beberapa tempat untuk melihat / mengeditnya
phuclv
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.