Yeniden biçimlendirilmiş bir sürücüyü sıfırlarla doldurmak yazma performansını iyileştirir mi?


14

>% 99 dolu 2 TB'lık diskim var. Disk bölümlerini fidsksildim ve bunları biçimlendirdim mkfs.ext4.

Bildiğim kadarıyla, sürücüdeki gerçek veriler hala var. Yine de bölüm tablosu yeniden atandı.

Soru şudur: Disk temizlenecekse , daha fazla yazma işlemi için yazma performansını artırabilir mi ? Temizlendiğinde diski sıfırlarla doldurmak mı demek istiyorum?

Gibi bir şey

dd if=/dev/zero of=/dev/sdx bs=1 count=4503599627370496

8
Başlamak için orada olan herhangi bir şeyin üzerine yazacağı için sıfırların başlaması avantaj değildir.
Moab

7
Bir SSD olsaydı, cevap "cehennem hayır" olurdu, çünkü mkfs.ext4 aslında tüm bölümün içeriğini atmak için TRIM kullanıyor, bu yüzden üzerine manuel olarak sıfırlar yazmak performansı biraz azaltacaktır .
user1686

2
@grawity Tüm sıfırların yazımlarını otomatik olarak TRIM'e dönüştüren herhangi bir SSD olup olmadığını merak ediyordum.
kasperd

@kasperd: iyi takip sorusu!
liori

Bir başka olası takip sorusu: eğer söz konusu disk, düşük seviyeli disk deplikasyonu yapan bir SAN üzerine monte edilmiş bir VM ise, bu yardımcı olabilir (eğer sistem bazı VM uyumlu API kullanmıyorsa, VM düzeyinde silinen veriler , SAN'a silinen tüm blokların birbirine yapışması gerektiğini görürken, bunları tüm sıfırlara ayarlamak, tamamen sıfır bir şeye işaret eden bir grup yinelenen blokla sonuçlanacaktır)
Foon

Yanıtlar:


36

Hayır, performansı artırmaz.

TL; DR: dönme manyetik sabit disk sürücüleri böyle çalışmaz.

Eğer bir dönme manyetik depolama sürücüsüne herhangi bir veriyi yazarken Birincisi, bu veri alır dönüştürülmüş içine manyetik alanların aslında yazıyoruz bit deseni çok farklı görünebilir. O desen geri plakalı okunan değişkenlik belli bir miktar olduğunda senkronizasyon sağlamak çok daha kolaydır, çünkü bu bölümde yapılır ve örneğin uzun bir dize "sıfır" veya "bir" değerler o yapacak çok sert senkronizasyonu sağlamak için . (26.393 bit veya 26.394 bit okudunuz mu? Bitler arasındaki sınırı nasıl tanıyorsunuz?) Bilgisayar veri bitleri ile depolanabilir parçalar arasında bu dönüşümü yapma teknikleri zaman içinde gelişti; örneğin, Modifiye Frekans Modülasyonu , MMFM,Grup Kodu Kaydı ve çalışma uzunluğu sınırlı kodlamaların daha genel teknolojisi .

Gibi fiili kayıt işlemi, HAMR , PMR , çakıllı bunlar manyetik alan fiziksel ortam üzerinde saklanan nasıl mekanik tarif ettiği kadar ve bu orthgonal bulunmaktadır.

İkincisi, bir sektöre yeni veri yazdığınızda, tabağın ilgili kısımlarının manyetik alanları basitçe istenen değere ayarlanır. Bu, önceki manyetik alanın o fiziksel konumda ne olduğuna bakılmaksızın yapılır. Tabla zaten yazma kafasının altında dönüyor; önce mevcut değeri okuduktan sonra, yeni değeri yalnızca ve eğer farklıysa, her yazma işleminin iki devir (veya her tabla için fazladan bir kafa) gerektirmesine neden olarak yazma gecikmesinin sürücünün karmaşıklığını iki katına veya büyük ölçüde artırmasına neden olur, buna karşılık artan maliyet. Sabit disk sıralı G / Ç performansındaki sınırlayıcı faktör, her bir bitin okuma / yazma kafasının altından ne kadar hızlı geçtiği olduğundan, bu kullanıcıya hiçbir fayda sağlamaz. (Bir yana, rastgele G / Ç performansındaki sınırlayıcı faktör, okuma / yazma kafasının istenen silindire ne kadar hızlı konumlandırılabileceğidir ve daha sonra istenen sektör başın altına gelir. SSD'lerin rastgele I / O iş yüklerinde bu kadar hızlı olmasının başlıca nedeni, bu faktörlerin her ikisini de tamamen ortadan kaldırmalarıdır.)

Tarafından işaret edildiği gibi JakeGould , bir nedeni neden isteyebilirsiniz üzerine önceden depolanan verilerin hiçbir kalıntıları edilebilir olmasını sağlamak olacaktır (örneğin tüm sıfır gibi) bazı sabit desenli sürücü kurtarıldı ya kasten veya yanlışlıkla. Ancak bunu yapmanın, yukarıda belirtilen nedenlerden ötürü sürücünün ileriye dönük performansı üzerinde herhangi bir etkisi olmayacaktır. Liori'nin işaret ettiği gibi "performansı artırdığı" söylenebilecek bir başka neden de, saklanan disk görüntülerinin kullanılmayan kısımlarının sıkıştırılmasına yardımcı olmaktır, ancak bu bile sistemin kullanım performansını iyileştirmez.


3
Bölümleri / sürücüleri sıfırlamanın bir başka nedeni, ham bölüm / sürücü dökümü almayı planlıyorsanız (örn. Yedekleme, birden çok makine için işletim sistemi görüntüsü oluşturma, sistem geçiş tekniği vb.). Sıfırlar, sürücüde bulunan önceki içeriklerden farklı olabilecek iyi sıkıştırır.
liori

@liori İyi bir nokta, ama bu yaygın bir son kullanıcı senaryosu değil ve OP'nin tanımladığı şeyden oldukça uzak.
CVn

Optik diskler dönme midir yoksa manyetik midir?
Max Ried

4

Bunu söyle:

Soru şudur: Disk temizlenirse, daha fazla yazma işlemi için yazma performansını artırabilir mi? Temizlendiğinde diski sıfırlarla doldurmak mı demek istiyorum?

% 100 hayır. Diske sıfır yazmak performansı artırmaz. Bunu sadece verileri yok etmek için yaparsınız. Bunu bilerek şunu söylüyorsunuz:

Bildiğim kadarıyla, sürücüdeki gerçek veriler hala var.

Teknik olarak evet… Sürücüde önceden var olan veriler hala sürücüde bazı temel seviyelerde bulunur. Bununla birlikte , bu noktada erişilmesi veya kurtarılması kolay bir formda mevcut değildir , ancak bu veri parçalarını kurtarmak için çaba göstermeye istekli biri tarafından ele geçirilen verilerin gerçekten endişelenmesi endişe verici olabilir. kalmak.

Güvenlik ve gizlilik bir endişe ise, tüm boş alanın gerçekten silindiğinden emin olmak için sürücüye sıfırlar yazmak isteyebilirsiniz. Ancak güvenlik ve gizlilik, boş alanı sıfırlarla silmenin mutlak tek sebebidir, çünkü böyle bir şey yapmak performansı asla iyileştirmez.


Gibi bir aracı çalıştırmak recover"kolay" sayılmaz mı? Tam olarak bir disk üzerinde çok sayıda dosya açacaktı mkfs.
Ocaklar

0

İki sent hediyem hepiniz benim kendi deneyimim, EVET yardım ediyor ama dikkatle.

Ben çok SSD'ler vardı ve kendi testlerime dayanarak ana tabloyu yeniden yazmadan önce sıfırlarla tam doldurmayı ve bölümleri silmek yerine ana tabloyu yeniden oluşturmanızı tavsiye ederim.

Daha sonra nedenini açıklayacağım, ancak adımlar tüm SSD'yi doldurmak için ˋddˋ olurdu, bs = 1M, bs = 1'den çok daha hızlı kullanın ve sonuna kadar gitmek için sayım parametresini unutun (ne zaman daha fazla boşluğa sahip olmadığına dair hata verecektir) sonuna ulaşmak, bu yüzden böyle bir hatayı görmek için endişelenmeyin, gösterilmelidir); tam doldurmadan sonra, gparted kullanın veya gerektiği gibi bir ana tablo (MBR / GPT / vb.) yazmak istediğiniz her şeyi kullandıktan sonra, bu, tüm diski 'keser', ardından istenen formatta bölümler oluşturur.

Neden sıfırlarla doldurmalıyım? Kısa cevap, deneyimlerim, 2-24 okunamayan blokların verilmesinin sabit olduğu, artık okunamayan blokların yok olduğu bazı SSD'leri sıfırlarla doldurduğumdur.

Şimdi yeni bir SSD aldığımda yaptığım ilk şey, kullanmadan önce, okunamayan 1KiB bloklarının ortak rastgele hatalarını tekrar çekmeyeceğinden emin olmak için sıfırlarla doldurun.

Deneyimlerim: Tüm SSD'yi okumak / test etmek için yazılım kullanma (her bir 'sektörü' okumak için ne kadar zaman harcadığını gösterir), okunamayan çok sayıda '512byte secttors' (1KiB blok) ve konumlarını alıyordum rastgele değişir ve başarısızlık sayısı 2'den 24'e kadar değişir; sıfırlarla doldurduktan sonra ve ana tabloyu (kırpmayı engelleyen) yeniden okunamayan sektörler oluşturmayın.

Çarpışma testim: Bu tür hatalardan kurtulmak için sıfırlarla doldurma, bir SSD'nin birkaç saat sonra kullanılmasına izin verdim ve sadece bir terabayttan az yazılı olarak (120GiB SSD) yanlış bir şekilde öldü, herhangi bir artık ona erişim, anakart bios göremiyorum, usb muhafazaları erişirken donuyor, bu yüzden ne Windows görüyor, ne de Linix fdisk görüyor.

Aynı anda satın aldığım birden fazla SSD ile bir 'ölmek' testiydi, aynı olanlar ... sıfırlamadığım tek şey öldü, geri kalan çok sayıda blok var, ancak artık okunamayan hatalar olmadan.

Tabii ki, sonucum, hangi marka ve kapasite ne olursa olsun, tüm SSD'lerin güvenilir olmadığıdır.

Bu yüzden onlarla ilk şey, deneyimlerime göre, onları en az bir kez tam doldurmaya zorlamaktır, sıfırlarla rastgele olmaktan daha iyidir (daha hızlıdır).

Dahası, çoğu SSD sıfırlarla (garbe hatırlama algoritmaları, vb.)

Ayrıca, ilk kez bir kez doldurursanız, yazma hatası veren herhangi bir blok yeniden tahsis edilir. Böyle bir şeyin hayati veriler olmadan gerçekleşmesi çok daha iyidir, eğer veriler kaybolursa (hepsi sıfırsa) sıfırlarla yazıldığında, ilgili değildir, ancak veriler işletim sistemi için 'hayati' ise çok kötüdür.

Çoğu SSD yeniden tahsis eder, ancak yazma hatası veren bloktaki verileri kaybederek, sadece 'kurumsal' (GiB başına> 10 € 'ya mal olur) doğru yeniden tahsis ettikten sonra yazmayı yeniden deneyin. Bazı SSD'ler, bu tür başarısız bloktaki diğer tüm sektörleri de kaybedecektir ('atma' gibi).

En iyisi, önce deneyin, tam doldurmadan sonra ne kadar yeniden tahsis yapılabileceğini görmek için SMART verilerini kontrol edin.

Ne kadar yeniden tahsis yapıldığı çok önemli değil, çoğu SSD, yeniden tahsis edilmiş bazı bloklarla üreticiden geldi, sıfır olanı% 1'den az bul, bu yüzden önemli olan oran, gelecekteki pozisyon yeniden tahsislerine karşı yeniden tahsis et.

Yüzlerce SSD'nin 5 beş yıl boyunca öldüğü, bazılarının ilk kullanım saatinde, bir haftada, bir ay içinde öldükten sonra benim deneyimim; ancak bu kadar sıfır tam doldurma yaptığım her şey, her gün 13GiB yazılmış, 3 * 365 * 13 GiB = 13.9TiB yazılı, üretimin söylediğinden çok daha az (> 100TiB).

Ancak, Windows'ta (Linux'ta iyi bir 2xHDD LVM2 şeritlemesi düzgün aynı önyükleme süreleri verirse, ancak> 25 yılda başarısız olmazsa) hız önemlidir, bu nedenle Gigabyte başına 0,21 € (120GiB = 25 €) fiyatla SSD kullanmak buna değer (Windows için), aralarında 2 veya 3 yıl sonra değiştirilmelidir; Umarım teknoloji güvenilirliği artırır.

Linux için artık thay daha güvenilir olacak kadar SSD istemiyorum, ancak Windows (Vista, 7 ve 10) için sistem bölümü bir zorunluluktur (bazı durumlarda önyükleme süreleri, Windows Vista ile, 30 dakika önyükleme yerine) eski dizüstü bilgisayarımda> 4dk).

Evet, tecrübelerime göre sıfırlarla tam doldurmak şart.

Ancak, yalnızca SSD'yi aldığınızda ve herhangi bir şey için kullanmadan önce.

İpucu: SSD çöp toplama işlemini iyi yapmazsa ve işletim sistemi her şeyi kırpmasını söylemezse, sıfırlar ile tam bir dolgu yapın, sonunda blokları attığında SSD'de dahili olan şey budur. Ayrıca sıfırlar yazmak elektronikleri temizler, bu yüzden başarısız okuma bloklarını kurtarmaya yardımcı olur.

Ve ayrıca, üzerindeki verileri her değiştirdiğinizde, bir klon yapmayı deneyin, SSD yazının Tamam olduğunu, okunamayan sektörlerde de (bunlar Tamam olarak yazılabilir, ancak okunamaz) bilgilendirecektir, böyle bir durumu destekleyecek hiçbir işletim sistemi tasarlanmamıştır. , wtite iyi olup olmadığını tüm verileri okunabilir varsayalım; okunabilir farklı veri okumak thsn ile karıştırmayın.

SSD'ler ve HDD'lerle ilgili deneyimim bu. Windows önyükleme ve uygulamalar için SSD kullanıyorum, ancak SSD 3 yıldan az bir süre içinde öldüğünden beri normal HDD'lerde yapılan bir klon ile her zaman, ancak gor Linux 2x veya 3x iyi 2.5 "HDD ti kullanıyorum, SSD'nin vereceği gibi normal kullanımda benzer süreler elde ediyor , ancak daha uzun ömürlüdür (> 25 yıl).

10 yıl boyunca iyi çalışan 100GiB entetprise SSD için> 1000 € ödemeye hazır değilim, her 2 veya 3 yılda bir 130GiB için 25 € ödemeyi tercih ediyorum. Fiyat yılda 100 € (kurumsal), yılda 10 € (Yucon, Samsung, vb.), Sadece matematik yapın.


Kötü sektörler üzerine yazmaya zorlamak, hala ayrılmış sektörler olduğu sürece, bunları "düzeltmenin" oldukça güvenilir bir yoludur.
konfeti
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.