Nó sẽ cải thiện hiệu suất ghi để lấp đầy một ổ đĩa được định dạng lại bằng số không?


14

Tôi có ổ đĩa 2 TB đã được lấp đầy tới> 99%. Tôi đã xóa các phân vùng với fidskvà định dạng chúng với mkfs.ext4.

Theo như tôi biết, dữ liệu thực tế trên ổ đĩa vẫn tồn tại. Bảng phân vùng vẫn được gán lại.

Câu hỏi là: Liệu nó có cải thiện hiệu suất ghi cho các hành động ghi tiếp nếu đĩa được làm sạch không? Với làm sạch tôi có nghĩa là điền vào đĩa với số không?

Cái gì đó như

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

8
Không có lợi thế nào khi bắt đầu bằng 0 vì nó sẽ ghi đè lên bất cứ thứ gì có sẵn để bắt đầu.
Moab

7
Nếu đó là SSD, câu trả lời sẽ là "hell no", bởi vì mkfs.ext4 thực sự sử dụng TRIM để loại bỏ toàn bộ nội dung của phân vùng, do đó, việc viết các số 0 ở trên đó sẽ làm giảm hiệu suất một chút .
dùng1686

2
@grawity Tôi đã tự hỏi nếu có bất kỳ ổ SSD nào tự động chuyển ghi của tất cả các số 0 thành TRIM.
kasperd

@kasperd: câu hỏi tiếp theo tốt!
liori

Một câu hỏi tiếp theo khác có thể xảy ra: nếu đĩa nói là máy ảo được gắn trên SAN đã làm giảm mức độ đĩa thấp, thì có thể giúp được không (trong đó nếu dữ liệu bị xóa ở cấp VM, trừ khi hệ thống đang sử dụng một số API nhận biết VM , SAN sẽ thấy rằng tất cả các khối bị xóa đó cần phải dán xung quanh, trong khi đặt chúng thành tất cả các số không sẽ kết thúc với một loạt các khối trùng lặp được chỉ ra là một thứ hoàn toàn không)
Foon

Câu trả lời:


36

Không, nó sẽ không cải thiện hiệu suất.

TL; DR: ổ đĩa cứng từ tính quay không hoạt động như vậy.

Đầu tiên, khi bạn ghi bất kỳ dữ liệu đã cho nào vào ổ lưu trữ từ tính quay, dữ liệu đó sẽ được chuyển thành các miền từ tính thực sự trông rất khác so với mẫu bit bạn đang viết. Điều này được thực hiện một phần vì việc duy trì đồng bộ hóa dễ dàng hơn nhiều khi mẫu đọc lại từ đĩa có một số biến thiên nhất định và ví dụ, một chuỗi dài các giá trị "không" hoặc "một" sẽ rất khó duy trì đồng bộ hóa . (Bạn đã đọc 26.393 bit hay 26.394 bit chưa? Làm thế nào để bạn nhận ra ranh giới giữa các bit?) Các kỹ thuật thực hiện chuyển đổi này giữa các bit dữ liệu máy tính và các khối có thể lưu trữ đã phát triển theo thời gian; ví dụ: tra cứu Điều chế tần số đã sửa đổi , MMFM,Ghi mã nhóm và công nghệ tổng quát hơn về mã hóa giới hạn độ dài chạy .

Quá trình ghi thực tế, chẳng hạn như HAMR , PMR , shingled và như vậy là trực giao với điều này trong đó họ mô tả các cơ chế về cách các miền từ được lưu trữ trên phương tiện vật lý.

Thứ hai, khi bạn ghi dữ liệu mới vào một khu vực, các miền từ tính của các phần có liên quan của đĩa được đặt đơn giản thành giá trị mong muốn. Điều này được thực hiện bất kể miền từ tính trước đó ở vị trí vật lý cụ thể nào. Đĩa đã quay dưới đầu viết; đầu tiên đọc giá trị hiện tại, sau đó viết giá trị mới nếu và chỉ khi nó khác nhau, sẽ khiến mỗi lần ghi yêu cầu hai vòng quay (hoặc một đầu thêm cho mỗi đĩa), khiến độ trễ ghi tăng gấp đôi hoặc tăng đáng kể độ phức tạp của ổ đĩa, lần lượt tăng chi phí. Vì yếu tố giới hạn trong hiệu suất I / O tuần tự của đĩa cứng là tốc độ mỗi bit đi qua đầu đọc / ghi, điều này thậm chí sẽ không mang lại bất kỳ lợi ích nào cho người dùng. (Như một bên, yếu tố giới hạn trong hiệu suất I / O ngẫu nhiên là tốc độ của đầu đọc / ghi có thể được định vị ở vị trí hình trụ mong muốn và sau đó khu vực mong muốn đến dưới đầu. Lý do chính tại sao SSD có thể nhanh như vậy trong khối lượng công việc I / O ngẫu nhiên là vì chúng loại bỏ hoàn toàn cả hai yếu tố này.)

Như đã chỉ ra bởi JakeGould , một lý do tại sao bạn có thể muốn ghi đè lên ổ đĩa với một số mô hình cố định (ví dụ như tất cả các zero) sẽ là để đảm bảo rằng không có tàn dư của dữ liệu được lưu trữ trước có thể được phục hồi , hoặc là cố ý hay vô tình. Nhưng làm như vậy sẽ không có bất kỳ ảnh hưởng nào đến hiệu suất của ổ đĩa trong tương lai, vì những lý do đã nêu ở trên. Một lý do khác, có thể được cho là có thể nói là "cải thiện hiệu suất", như được chỉ ra bởi liori , là để giúp nén các phần không sử dụng của hình ảnh đĩa được lưu trữ, nhưng ngay cả điều đó không cải thiện hiệu suất của hệ thống đang sử dụng.


3
Một lý do khác cho zeroing phân vùng / ổ đĩa là nếu bạn có kế hoạch lấy phân vùng / ổ đĩa thô (ví dụ như sao lưu, tạo hình ảnh hệ điều hành cho nhiều máy, như một kỹ thuật di chuyển hệ thống, v.v.). Số không nén tốt, có thể khác với bất kỳ nội dung nào trước đó được lưu trữ trên ổ đĩa.
liori

@liori Điểm hay, nhưng đó không phải là một kịch bản người dùng cuối phổ biến và nó khá xa so với những gì OP đang mô tả.
một CVn

Vì vậy, đĩa quang là không quay hoặc là từ tính?
Max Ried

4

Bạn nói điều này:

Câu hỏi là: Liệu nó có cải thiện hiệu suất ghi cho các hành động ghi tiếp nếu đĩa được làm sạch không? Với làm sạch tôi có nghĩa là điền vào đĩa với số không?

100% không. Ghi số không vào đĩa không cải thiện hiệu suất. Bạn sẽ chỉ làm điều đó để phá hủy dữ liệu. Vì vậy, biết rằng, bạn nói điều này:

Theo như tôi biết, dữ liệu thực tế trên ổ đĩa vẫn tồn tại.

Về mặt kỹ thuật có đúng dữ liệu Dữ liệu trước đây tồn tại trên ổ đĩa vẫn tồn tại trên ổ đĩa ở một mức độ cơ bản. Điều đó nói rằng, nó không tồn tại ở dạng dễ truy cập hoặc khôi phục vào thời điểm này nhưng nó có thể là mối quan tâm nếu bạn thực sự lo lắng về việc dữ liệu bị xâm phạm bởi ai đó sẵn sàng nỗ lực khôi phục những đoạn dữ liệu đó vẫn còn

Vì vậy, nếu bảo mật và quyền riêng tư là một mối quan tâm, thì bạn có thể muốn ghi số không vào ổ đĩa để đảm bảo tất cả không gian trống thực sự bị xóa sạch. Nhưng bảo mật và quyền riêng tư là lý do tuyệt đối duy nhất bạn sẽ xóa sạch không gian trống bằng số không kể từ khi làm điều gì đó như thế không bao giờ cải thiện hiệu suất.


Có phải chạy một công cụ như recoverkhông được tính là "dễ dàng"? Nó sẽ xuất hiện rất nhiều tập tin trên một ổ đĩa vừa mới được mkfs.
hobbs

0

Quà tặng hai xu của tôi cho tất cả các bạn là kinh nghiệm của riêng tôi, CÓ nó giúp nhưng thận trọng.

Tôi đã có rất nhiều ổ SSD và dựa trên các thử nghiệm của riêng tôi, tôi khuyên bạn nên điền đầy đủ các số 0 trước khi viết lại bảng chính và thay vì xóa các phân vùng, tạo lại bảng chính.

Sau này tôi sẽ giải thích lý do, nhưng các bước sẽ là ˋddˋ để lấp đầy toàn bộ SSD, sử dụng bs = 1M, nhanh hơn nhiều so với bs = 1 và quên tham số đếm để kết thúc (nó sẽ báo lỗi không còn chỗ trống khi đến cuối cùng, đó là được phát hiện, vì vậy đừng lo lắng khi thấy lỗi như vậy, nó phải được hiển thị); sau khi điền đầy đủ, hãy sử dụng gparted hoặc bất cứ thứ gì bạn muốn để viết bảng chính (MBR / GPT / etc) khi cần, điều này sẽ 'cắt' tất cả các đĩa, sau đó tạo phân vùng với định dạng mong muốn, v.v.

Tại sao điền nó với số không? Anwser ngắn là kinh nghiệm của tôi là khi tôi lấp đầy nó bằng một số SSD mà việc cung cấp 2-24 khối không thể đọc được đã được sửa, không còn khối nào không được giải quyết nữa.

Bây giờ điều đầu tiên tôi làm khi tôi nhận được một ổ SSD mới, trước khi sử dụng nó, hãy điền đầy đủ vào số không, để đảm bảo tôi sẽ không phải chịu một lần nữa các lỗi ngẫu nhiên phổ biến của các khối 1KiB không thể đọc được.

Kinh nghiệm của tôi: Sử dụng phần mềm để đọc / kiểm tra toàn bộ SSD (nó cho bạn biết cần bao nhiêu thời gian để đọc từng 'sector') tôi đã nhận được rất nhiều cặp 'giáo viên 512byte' (khối 1KiB) không hợp lý và vị trí của chúng thay đổi ngẫu nhiên và số lần thất bại thay đổi từ 2 đến 24, v.v.; sau khi điền đầy đủ các số 0 và tạo lại bảng chính (vauses trim) không còn các khu vực không thể đọc được.

Thử nghiệm sự cố của tôi: Ngay lập tức điền vào các số không để khắc phục các lỗi đó, tôi đã sử dụng một ổ SSD, sau vài giờ và chỉ với ít hơn một terabyte được ghi vào nó (SSD 120GiB), nó đã chết một cách đáng tiếc, nó không cho phép bất kỳ truy cập vào nó nữa, bios bo mạch chủ không thể nhìn thấy nó, các hộp đựng USB bị đóng băng khi truy cập nó, vì vậy Windows không nhìn thấy nó, Linix fdisk cũng không thấy nó.

Đó là một thử nghiệm 'chết' với nhiều ổ SSD tôi đã mua cùng một lúc, những cái giống hệt nhau ... tất cả những gì tôi không làm đều bị chết, phần còn lại có rất nhiều khối được phân bổ lại, nhưng không còn lỗi nào có thể đọc được nữa.

Tất nhiên, kết luận của tôi là tất cả các ổ SSD đều không đáng tin cậy, bất kể thương hiệu và dung lượng là gì.

Vì vậy, điều đầu tiên với họ, theo kinh nghiệm của tôi, là buộc họ phải điền đầy đủ ít nhất một lần, tốt hơn với số không so với ngẫu nhiên (nó nhanh hơn).

Hơn nữa, hầu hết SSD thực hiện cắt nội bộ khi được viết bằng số không (thuật toán hồi ức garbe, v.v.).

Ngoài ra, nếu bạn lần đầu tiên điền chúng một lần, bất kỳ khối nào gây ra lỗi ghi sẽ được phân bổ lại. Sẽ tốt hơn nhiều nếu điều đó xảy ra khi không có dữ liệu quan trọng, khi số không được ghi nếu dữ liệu bị mất (tất cả là số không) thì không liên quan, nhưng nếu dữ liệu là 'quan trọng' đối với hệ điều hành thì điều đó rất tệ.

Hầu hết việc phân bổ lại SSD đều làm điều đó nhưng mất dữ liệu trên khối bị lỗi ghi, chỉ 'doanh nghiệp' (chúng có giá> 10 € mỗi GiB) thực hiện thử lại ghi sau khi phân bổ lại chính xác. Một số SSD cũng sẽ mất tất cả các 'lĩnh vực' khác trên khối bị lỗi như vậy (như thực hiện 'loại bỏ').

Vì vậy, tốt nhất, hãy thử trước, sau khi điền đầy đủ, hãy kiểm tra dữ liệu SMART để xem có bao nhiêu phân bổ vẫn có thể được thực hiện.

Việc phân bổ lại đã được thực hiện không quan trọng lắm, hầu hết các ổ SSD đều đến từ manufacter với một số khối đã được phân bổ lại, tìm một khối có 0 nhỏ hơn 1%, vì vậy điều quan trọng là tỷ lệ, phân bổ lại so với phân bổ lại trong tương lai.

Đó là kinh nghiệm của tôi sau khi hàng trăm ổ SSD đã chết trong 5 năm năm, một số đã chết trong giờ đầu tiên sử dụng, khác trong một tuần, số khác trong một tháng; nhưng tất cả những gì tôi đã thực hiện không đầy đủ như vậy đã tồn tại trong 2 đến 3 năm, với 13GiB được viết mỗi ngày, 3 * 365 * 13 GiB = 13,9TiB được viết, ít hơn nhiều so với manufatures nói (> 100TiB).

Nhưng vấn đề về tốc độ, hầu hết là trên Windows (trên Linux, dải LVM2 2xHDD tốt cho thời gian khởi động gọn gàng nhưng không thất bại trong> 25 năm), vì vậy, sử dụng SSD với giá 0,21 € mỗi Gigabyte (120GiB = 25 €) là đáng giá (đối với Windows), trong số họ có thể thay đổi sau 2 hoặc 3 năm; tôi hy vọng công nghệ sẽ cải thiện độ tin cậy.

Đối với Linux, tôi không muốn SSD nữa cho đến khi thay thế sẽ đáng tin cậy hơn, nhưng đối với phân vùng hệ thống Windows (Vista, 7 và 10) là điều bắt buộc (thời gian khởi động thấp hơn mười lần trong một số trường hợp, với Windows Vista, thay vì khởi động> 30 phút khởi động trên> 4 phút trên máy tính xách tay cũ của tôi).

Vâng, điền đầy đủ với số không là phải, theo kinh nghiệm của tôi.

Nhưng, chỉ khi bạn nhận được SSD và trước khi sử dụng nó cho bất cứ điều gì.

Mẹo: Nếu SSD không thực hiện tốt việc thu gom rác và hệ điều hành không yêu cầu nó xử lý tất cả, tốt hơn hết hãy lấp đầy các số không, cuối cùng, đó là những gì bên trong SSD khi loại bỏ các khối. Ngoài ra việc ghi số không sẽ xóa điện tử, đó là lý do tại sao nó giúp phục hồi các khối đọc bị lỗi.

Ngoài ra, mỗi khi bạn thay đổi dữ liệu trên nó, hãy thử sao chép, SSD sẽ thông báo ghi là OK, cũng trên các phần chưa đọc (chúng có thể được viết OK nhưng không được đọc), không có hệ điều hành nào được thiết kế để hỗ trợ điều kiện như vậy , tất cả đều giả sử nếu wtite là dữ liệu OK có thể được đọc; đừng nhầm lẫn giữa việc đọc dữ liệu khác nhau với những gì đã được viết.

Đó là kinh nghiệm của tôi với SSD và HDD. Đối với các ứng dụng và khởi động Windows, tôi sử dụng SSD nhưng luôn luôn sao chép trên các ổ cứng thông thường kể từ khi SSD chết trong vòng chưa đầy 3 năm, nhưng Linux tôi sử dụng ổ cứng gấp 2 hoặc 3 lần 2,5 "có thời gian sử dụng bình thường như những gì SSD mang lại , nhưng kéo dài lâu hơn nhiều (> 25 năm).

Tôi không phải trả> 1000 € cho ổ SSD nhập khẩu 100GiB hoạt động tốt trong 10 năm, tôi không muốn trả 25 € cho 130GiB cứ sau 2 hoặc 3 năm. Vấn đề giá 100 € mỗi năm (doanh nghiệp) so với 10 € mỗi năm (Yucon, Samsung, v.v.), chỉ cần làm toán.


Buộc phải viết lên các thành phần xấu thực sự là một cách khá đáng tin cậy để "sửa chữa" chúng, miễn là vẫn còn các khu vực dành riêng.
confetti
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.