Apakah akan meningkatkan kinerja penulisan untuk mengisi drive yang diformat ulang dengan nol?

14

Saya memiliki drive 2 TB yang terisi hingga> 99%. Saya telah menghapus partisi dengan fidskdan memformatnya dengan mkfs.ext4.

Jadi sejauh yang saya tahu, data aktual yang ada di drive masih ada. Tabel partisi masih dipindahkan.

Pertanyaannya adalah: Apakah akan meningkatkan kinerja penulisan untuk tindakan menulis lebih lanjut jika disk akan dibersihkan ? Dengan dibersihkan maksud saya isi disk dengan nol?

Sesuatu seperti

dd if=/dev/zero of=/dev/sdx bs=1 count=4503599627370496
Brettetete
sumber
8
Tidak ada untungnya memiliki nol untuk memulai karena akan menimpa apa pun yang ada untuk memulai.
Moab
7
Jika itu adalah SSD, jawabannya adalah "tidak," karena mkfs.ext4 benar-benar menggunakan TRIM untuk membuang seluruh isi partisi, jadi menulis nol secara manual di atas itu akan sedikit mengurangi kinerja.
user1686
2
@ kegembiraan Saya telah bertanya-tanya apakah ada SSD yang secara otomatis mengubah penulisan semua nol menjadi TRIM sebagai gantinya.
kasperd
@kasperd: pertanyaan lanjutan yang bagus!
liori
Pertanyaan tindak lanjut lainnya yang mungkin: jika disk tersebut adalah VM yang dipasang pada SAN yang melakukan deplikasi disk tingkat rendah, dapatkah itu membantu (dalam hal itu jika data yang dihapus pada tingkat VM, kecuali sistem menggunakan beberapa API yang menyadari VM , akan melihat ke SAN bahwa semua blok yang dihapus perlu bertahan, sedangkan pengaturannya untuk semua nol akan berakhir dengan sekelompok blok duplikat semua menunjuk ke hal yang sama sekali nol)
Foon

Jawaban:

36

Tidak, itu tidak akan meningkatkan kinerja.

TL; DR: drive hard disk magnetik rotasi tidak berfungsi seperti itu.

Pertama, ketika Anda menulis data yang diberikan ke drive penyimpanan magnetik rotasi, data tersebut ditransformasikan menjadi domain magnetik yang sebenarnya mungkin terlihat sangat berbeda dari pola bit yang Anda tulis. Ini dilakukan sebagian karena jauh lebih mudah untuk mempertahankan sinkronisasi ketika pola baca kembali dari platter memiliki sejumlah variabilitas tertentu, dan misalnya string panjang nilai "nol" atau "satu" akan membuatnya sangat sulit untuk mempertahankan sinkronisasi. . (Sudahkah Anda membaca 26.393 bit, atau 26.394 bit? Bagaimana Anda mengenali batas antar bit?) Teknik untuk melakukan transformasi ini antara bit data komputer dan potongan yang dapat disimpan telah berkembang dari waktu ke waktu; misalnya, cari Modified Frequency Modulation , MMFM,Perekaman Kode Grup dan teknologi yang lebih umum dari enkode terbatas run-length .

Proses perekaman yang sebenarnya, seperti HAMR , PMR , shingled , dan sebagainya merupakan hal yang lazim dalam hal ini karena mereka menggambarkan mekanisme bagaimana domain magnetik disimpan di media fisik.

Kedua, ketika Anda menulis data baru ke suatu sektor, domain magnetik dari bagian-bagian yang relevan dari platter diatur dengan nilai yang diinginkan. Ini dilakukan terlepas dari apa domain magnetik sebelumnya berada di lokasi fisik tertentu. Piring sudah berputar di bawah kepala tulis; pertama membaca nilai saat ini, kemudian menulis nilai baru jika dan hanya jika itu berbeda, akan menyebabkan setiap penulisan membutuhkan dua putaran (atau kepala tambahan untuk setiap piring), menyebabkan latensi tulis untuk menggandakan atau sangat meningkatkan kompleksitas drive, pada gilirannya meningkatkan biaya. Karena faktor pembatas dalam kinerja I / O berurutan hard disk adalah seberapa cepat setiap bit melewati di bawah kepala baca / tulis, ini bahkan tidak akan menawarkan manfaat apa pun kepada pengguna. (Sebagai tambahan, faktor pembatas dalam kinerja I / O acak adalah seberapa cepat kepala baca / tulis dapat diposisikan pada silinder yang diinginkan dan kemudian sektor yang diinginkan tiba di bawah kepala. Alasan utama mengapa SSD bisa begitu cepat dalam beban kerja I / O acak adalah karena mereka sepenuhnya menghilangkan kedua faktor ini.)

Seperti yang ditunjukkan oleh JakeGould , salah satu alasan mengapa Anda mungkin ingin menimpa drive dengan beberapa pola tetap (seperti semua nol) adalah untuk memastikan bahwa tidak ada sisa-sisa data yang disimpan sebelumnya dapat dipulihkan , baik secara sengaja atau tidak sengaja. Tetapi melakukan hal itu tidak akan mempengaruhi kinerja drive di masa depan, karena alasan yang disebutkan di atas. Alasan lain, yang dapat dikatakan "meningkatkan kinerja", seperti yang ditunjukkan oleh liori , adalah untuk membantu kompresi bagian yang tidak terpakai dari gambar disk yang disimpan, tetapi bahkan itu tidak meningkatkan kinerja sistem yang digunakan.

sebuah CVn
sumber
3
Alasan lain untuk memusatkan partisi / drive adalah jika Anda berencana untuk mengambil partisi mentah / drive dump (misalnya sebagai cadangan, membuat gambar OS untuk beberapa mesin, sebagai teknik migrasi sistem, dll.). Nol kompres dengan baik, yang mungkin berbeda dari apa pun konten sebelumnya disimpan di drive.
liori
@liori Poin bagus, tapi itu bukan skenario pengguna akhir yang umum, dan itu cukup jauh dari apa yang dijelaskan OP.
CVn
Jadi cakram optik dapat diputar atau bersifat magnetis?
Max Ried
4

Anda mengatakan ini:

Pertanyaannya adalah: Apakah akan meningkatkan kinerja penulisan untuk tindakan menulis lebih lanjut jika disk akan dibersihkan? Dengan dibersihkan maksud saya isi disk dengan nol?

100% tidak Menulis nol ke disk tidak meningkatkan kinerja. Anda hanya akan melakukan itu untuk menghancurkan data. Jadi mengetahui itu, Anda mengatakan ini:

Jadi sejauh yang saya tahu, data aktual yang ada di drive masih ada.

Secara teknis ya ... Data yang sebelumnya ada di drive masih ada di drive di beberapa level mendasar. Yang mengatakan, itu tidak ada dalam bentuk yang mudah diakses atau dipulihkan pada saat ini tetapi mungkin menjadi perhatian jika Anda benar-benar khawatir tentang data yang dikompromikan oleh seseorang yang bersedia melakukan upaya untuk memulihkan fragmen-fragmen data yang tetap.

Jadi jika keamanan dan privasi menjadi perhatian, maka Anda mungkin ingin menulis nol ke drive untuk memastikan semua ruang kosong benar-benar terhapus. Tetapi keamanan dan privasi adalah satu-satunya alasan mutlak Anda akan menghapus ruang kosong dengan nol karena melakukan sesuatu seperti itu tidak pernah meningkatkan kinerja.

JakeGould
sumber
Apakah menjalankan alat seperti recovertidak dihitung sebagai "mudah"? Itu akan muncul banyak dan banyak file pada drive penuh yang baru saja mkfsd.
hobbs
0

Hadiah dua sen saya untuk Anda semua adalah pengalaman saya sendiri, YA itu membantu tetapi dengan hati-hati.

Saya punya banyak SSD dan berdasarkan tes saya sendiri saya sarankan untuk mengisi penuh dengan nol sebelum menulis ulang tabel master dan bukannya menghapus partisi, buat ulang tabel master.

Nanti saya akan menjelaskan alasannya, tetapi langkah-langkahnya adalah ˋddˋ untuk mengisi seluruh SSD, gunakan bs = 1M, jauh lebih cepat daripada bs = 1, dan lupakan parameter hitungan untuk membuatnya berjalan sampai akhir (itu akan memberikan kesalahan karena tidak ada lagi ruang ketika mencapai akhir, yang dicentang jadi jangan khawatir untuk melihat kesalahan seperti itu, itu harus ditampilkan); setelah isi penuh gunakan gparted atau apa pun yang Anda ingin menulis tabel master (MBR / GPT / dll) sesuai kebutuhan, ini akan 'memangkas' semua disk, kemudian membuat partisi dengan format yang diinginkan, dll.

Mengapa mengisinya dengan nol? Anwser pendek adalah bahwa pengalaman saya adalah ketika saya mengisinya dengan nol beberapa SSD yang mana memberikan 2-24 blok yang tidak dapat dibaca diperbaiki, tidak ada lagi blok yang tidak dapat digunakan lagi.

Sekarang hal pertama yang saya lakukan ketika saya menerima SSD baru, sebelum menggunakannya, isi penuh dengan nol, untuk memastikan saya tidak akan menderita lagi kesalahan acak umum dari blok 1KiB yang tidak dapat dibaca.

Pengalaman saya: Menggunakan perangkat lunak untuk membaca / menguji seluruh SSD (ini memberi tahu Anda berapa banyak waktu yang dibutuhkan untuk membaca setiap 'sektor') saya mendapatkan banyak pasangan 'sekte 512byte' (blok 1KiB) yang tidak dapat digunakan kembali, dan posisinya perubahan secara acak dan jumlah kegagalan bervariasi dari 2 hingga 24, dll; setelah diisi penuh dengan nol dan buat ulang tabel master (yang memangkas lis) tidak ada lagi sektor yang tidak dapat dibaca.

Tes crash saya: Instesd pengisian dengan nol untuk pulih dari kesalahan seperti itu, saya membiarkan satu SSD untuk digunakan, setelah beberapa jam dan dengan hanya kurang dari satu terabyte yang ditulis untuk itu (120GiB SSD) itu mati dengan menyedihkan, tidak memungkinkan Akses ke sana lagi, BIOS motherboard tidak dapat melihatnya, penutup usb membeku saat mengaksesnya, jadi tidak ada Windows yang melihatnya, dan Linix fdisk tidak melihatnya.

Itu adalah tes 'mati' dengan beberapa SSD yang saya beli pada saat yang sama, yang identik ... semua saya tidak memusatkan perhatian adalah mati, sisanya memiliki banyak blok dialokasikan kembali, tetapi tanpa kesalahan yang tidak terbaca lagi.

Tentu saja, kesimpulan saya adalah bahwa semua SSD tidak dapat diandalkan, apa pun merek dan kapasitasnya.

Jadi hal pertama dengan mereka, dalam pengalaman saya, adalah untuk memaksa mereka mengisi penuh setidaknya sekali, lebih baik dengan nol daripada dengan acak (lebih cepat).

Terlebih lagi, sebagian besar SSD melakukan trim internal ketika ditulis dengan nol (algoritme garbe recollection, dll).

Juga, jika Anda pertama kali mengisinya sekali, setiap blok yang memberikan kesalahan tulis akan dialokasikan kembali. Jauh lebih baik hal seperti itu terjadi tanpa data vital, ketika ditulis nol jika data hilang (semuanya nol) itu tidak relevan, tetapi jika data 'vital' untuk sistem operasi itu sangat buruk.

Sebagian besar SSD merealokasi melakukannya tetapi kehilangan data pada blok yang memberikan kesalahan tulis, hanya 'perusahaan' (biayanya> 10 € per GiB) coba ulang penulisan setelah realokasi dengan benar. Beberapa SSD juga akan kehilangan semua 'sektor' lain di blok gagal tersebut (seperti melakukan 'buang').

Jadi yang terbaik, coba dulu, setelah diisi penuh, periksa data SMART untuk melihat berapa banyak realokasi yang masih bisa dilakukan.

Tidak begitu penting berapa banyak realokasi yang telah dilakukan, sebagian besar SSD berasal dari manufacter dengan beberapa blok yang telah dialokasikan kembali, temukan satu dengan nol kurang dari 1%, jadi yang penting adalah rasio, realokasi vs realsiasi possi le masa depan.

Ini adalah pengalaman saya setelah ratusan SSD mati selama 5 lima tahun, beberapa mati pada jam pertama penggunaan, lainnya dalam seminggu, yang lain dalam sebulan; tetapi semua yang saya lakukan tanpa isi penuh seperti itu hidup selama 2 hingga 3 tahun, dengan 13GiB ditulis setiap hari, 3 * 365 * 13 GiB = 13.9TiB ditulis, jauh lebih sedikit daripada yang dikatakan oleh manufaktur (> 100TiB).

Namun masalah kecepatan, sebagian besar jika di Windows (di Linux striping 2xHDD LVM2 yang bagus memberikan waktu boot yang sama tetapi mereka tidak gagal dalam> 25 tahun), jadi menggunakan SSD dengan harga 0,21 € per Gigabyte (120GiB = 25 €) adalah layak (untuk Windows), di antara mereka harus diubah setelah 2 atau 3 tahun; Saya berharap teknologi akan meningkatkan keandalan.

Untuk Linux saya tidak ingin lagi SSD sampai akan lebih dapat diandalkan, tetapi untuk Windows (Vista, 7 dan 10) sistem partisi adalah suatu keharusan (kali boot sepuluh kali lebih rendah dalam beberapa kasus, dengan Windows Vista, daripada> 30 menit boot itu boot> 4 menit di laptop lama saya).

Ya, mengisi penuh dengan nol adalah suatu keharusan, mengingat pengalaman saya.

Tapi, hanya ketika Anda menerima SSD dan sebelum menggunakannya untuk apa pun.

Tip: Jika SSD tidak melakukan pengumpulan sampah dengan baik dan sistem operasi tidak memerintahkannya untuk memangkas semua, lebih baik isi penuh dengan nol, pada akhirnya itulah yang secara internal di SSD saat membuang blok. Angka nol juga akan menghapus elektronik, karena itu membantu memulihkan blok pembacaan yang gagal.

Dan juga, setiap kali Anda mengubah data tentang itu, coba lakukan kloning, SSD akan menginformasikan bahwa penulisan OK, juga pada sektor yang tidak dapat dibaca (dapat ditulis OK tetapi tidak dibaca), tidak ada sistem operasi yang dirancang untuk mendukung kondisi tersebut , mereka semua mengira jika data OK, dapat dibaca; jangan bingung terbaca dengan membaca data berbeda dari apa yang ditulis.

Itulah pengalaman saya dengan SSD dan HDD. Untuk boot Windows dan aplikasi saya menggunakan SSD tetapi selalu dengan kloning dilakukan pada HDD normal sejak SSD mati dalam waktu kurang dari 3 tahun, tetapi gor Linux saya menggunakan 2x atau 3x baik 2,5 "HDD untuk mendapatkan waktu yang sama pada penggunaan normal seperti apa yang akan diberikan SSD , tapi bertahan lebih lama (> 25 tahun).

Saya tidak membayar> 1000 € untuk 100GiB entetprise SSD yang bekerja dengan baik selama 10 tahun, saya lebih suka membayar € 25 untuk 130GiB setiap 2 atau 3 tahun. Masalah harga € 100 per tahun (perusahaan) versus € 10 per tahun (Yucon, Samsung, dll), lakukan perhitungannya saja.

Claudio
sumber
Memaksa untuk menulis di sektor yang buruk memang merupakan cara yang cukup andal untuk "memperbaiki" mereka, selama masih ada sektor yang dipesan.
confetti