Ổ đĩa SSD không


18

Chúng tôi lưu trữ VPS cho khách hàng. Mỗi VPS khách hàng được cấp LV LVM trên đĩa cứng trục chính tiêu chuẩn. Nếu khách hàng rời đi, chúng tôi sẽ loại bỏ LV này để đảm bảo rằng dữ liệu của họ không bị rò rỉ cho các khách hàng khác.

Chúng tôi đang nghĩ đến việc đi với SSD cho doanh nghiệp lưu trữ của chúng tôi. Cho rằng SSD có công nghệ "cân bằng hao mòn", điều đó có làm cho zeroing trở nên vô nghĩa? Điều này có làm cho ý tưởng SSD này không khả thi hay không, vì chúng tôi không thể cho phép dữ liệu của khách hàng bị rò rỉ sang một khách hàng khác?

Câu trả lời:


23

Giả sử rằng những gì bạn đang tìm cách ngăn chặn là khách hàng tiếp theo đọc đĩa để xem dữ liệu của khách hàng cũ, sau đó viết tất cả các số không thực sự sẽ vẫn hoạt động. Viết các số 0 vào sector 'n' có nghĩa là khi sector 'n' được đọc, nó sẽ trả về tất cả các số không. Bây giờ thực tế là, dữ liệu thực tế cơ bản có thể vẫn còn trên các chip flash, nhưng vì bạn không thể đọc bình thường để có được nó, nên đó không phải là vấn đề đối với tình huống của bạn.

Đó là một vấn đề nếu ai đó có thể nắm giữ đĩa một cách vật lý và tách nó ra (vì sau đó họ có thể đọc trực tiếp các chip flash), nhưng nếu truy cập duy nhất họ có là bus SATA, thì ghi toàn bộ số không vào toàn bộ đĩa sẽ làm tốt


1
Chính xác câu trả lời mà tôi đang tìm kiếm và khi tôi nghĩ về nó, tôi đã đi đến kết luận tương tự :)
jtnire

2
Tôi sẽ tưởng tượng (nhưng không biết chắc chắn, và chắc chắn nó sẽ phụ thuộc vào chipset bộ điều khiển được sử dụng trong SSD) rằng việc ghi một khu vực số không vào SSD thậm chí sẽ không đạt được chip flash thực tế. Bộ điều khiển cần lưu ý rằng đó là tất cả các số 0 và chỉ cần đánh dấu khu vực đó là "zeroed out" (hoặc chỉ trỏ nó vào một khu vực có chứa tất cả các số 0). Viết một lĩnh vực số không là một việc khá phổ biến, và đặc biệt nó sẽ là một cách rẻ tiền và dễ dàng để giảm hao mòn cho đèn flash, vì vậy tôi sẽ bị sốc nếu ít nhất Intel và Sandforce không làm điều đó.
loại

20

Đừng bao giờ điền vào một ổ SSD. Tối thiểu, điều này sẽ làm hao mòn một số tuổi thọ ghi của SSD mà ít hoặc không có lợi ích. Trong trường hợp cực kỳ xấu nhất, bạn có thể đặt bộ điều khiển của SSD vào trạng thái hiệu suất (tạm thời) giảm .

Từ nguồn này :

Ghi đè liên tục toàn bộ đĩa với nhiều lần lặp lại có thể phá hủy dữ liệu thành công, nhưng do Lớp dịch phần sụn (FTL), điều này phức tạp và tốn thời gian hơn nhiều so với các ổ đĩa cứng truyền thống. Dựa trên kết quả của họ, đó là một lựa chọn không hấp dẫn

Tùy chọn tốt nhất của bạn, xóa an toàn thông qua mã hóa toàn bộ đĩa:

Một vài ổ SSD hiện đại có thể sử dụng mã hóa toàn bộ đĩa - ví dụ là các ổ đĩa 320 mới của Intel và một số ổ đĩa Sandforce 2200 series. Các ổ đĩa này có thể được xóa một cách an toàn một cách đơn giản và nhanh chóng, không bị hao mòn ổ đĩa.Ổ đĩa sử dụng mã hóa AES cho tất cả dữ liệu được ghi, do đó, xóa an toàn chỉ đơn giản là xóa khóa AES cũ và thay thế nó bằng một dữ liệu mới. Điều này thực sự làm cho tất cả dữ liệu 'cũ' trên ổ đĩa không thể khôi phục được.

Tuy nhiên, xóa an toàn của Intel không dễ tự động hóa. AFAIK nó phải được thực hiện từ ứng dụng Windows GUI của Intel, nó chỉ có thể được chạy trên một ổ đĩa không khởi động trống, v.v. Xem trang 21 trở đi trong tài liệu Intels.

Tùy chọn khác của bạn, xóa an toàn ATA:

Một tùy chọn khác là ban hành lệnh ATA Secure Erase thông qua fx HDPARM trên Linux. Điều này sẽ dễ dàng hơn nhiều để tự động hóa thông qua kịch bản.

Với điều kiện ổ đĩa thực hiện ATA Secure Erase theo cách 'tốt', người ta sẽ mong đợi nó ít nhất sẽ xóa "lớp dịch flash" (FTL). Bảng FTL giữ ánh xạ giữa các thành phần logic (mà hệ điều hành 'nhìn thấy') và các trang vật lý của NVRAM trên chính ổ đĩa. Với bảng ánh xạ này bị phá hủy, sẽ rất khó - nhưng có lẽ không phải là không thể - để khôi phục dữ liệu từ ổ đĩa.

Tuy nhiên, tôi không biết về bất kỳ nghiên cứu nào đã chỉ ra rằng ATA Secure Erase được triển khai nhất quán và tốt trên tất cả các ổ đĩa của nhà sản xuất, vì vậy tôi ngần ngại nói rằng nó sẽ luôn hoạt động - bạn nên đọc tài liệu kỹ thuật của nhà sản xuất.

Đối với một phân vùng duy nhất:

Khi tôi đọc các bình luận cho các câu trả lời khác, có vẻ như OP chỉ muốn xóa an toàn các phân vùng đơn lẻ. Một cách tốt để làm điều đó là chỉ tạo các khối được mã hóa , fx bằng LUKS hoặc TrueCrypt . Bằng cách đó, bạn có thể xóa âm lượng một cách an toàn bằng cách bỏ đi khóa mã hóa, tương tự như sơ đồ mã hóa toàn bộ ổ đĩa trên ổ đĩa.

Phần kết luận:

Nếu bạn thực sự, thực sự muốn biết, thì hãy đọc bài viết được liên kết từ blog của Sophos và đọc các ghi chú công nghệ của nhà sản xuất ổ đĩa về xóa an toàn. Tuy nhiên, nếu bạn muốn xóa an toàn 'tốt', thì SSD có mã hóa toàn bộ đĩa và xóa và thay thế các khóa mã hóa an toàn có lẽ là lựa chọn tốt nhất của bạn. Cách khác, sử dụng mã hóa ở cấp hệ điều hành và vứt bỏ khóa khi bạn muốn xóa dữ liệu một cách an toàn.


1
Thận trọng là tốt, nhưng tôi không chắc rằng trích dẫn thông báo 2 năm về lỗi bộ điều khiển chỉ xuất hiện trong khối lượng công việc nhân tạo nặng nề trong một ổ SSD cụ thể đã được sửa từ lâu nên được cân nhắc nhiều.
Daniel Lawson

1
@Daniel Lawson: Điểm công bằng. .-
Jesper M

6

Mặc cân bằng không có gì để làm với dữ liệu không.

Bạn không có dữ liệu để ngăn người khác / ứng dụng đọc dữ liệu đó. SSD 'mức độ hao mòn' dữ liệu của họ để đảm bảo rằng chúng có thể sử dụng được lâu hơn do 'thiệt hại' mà việc ghi đối với SSD. Ngoài ra, các đĩa thường làm điều này khi chúng không bận, trong các tình huống máy chủ, thời gian yên tĩnh không phải lúc nào cũng có sẵn nên công việc này thường không được thực hiện.

Bạn có tính phí khách hàng của bạn cho các hoạt động IO của họ? Nếu không phải là những gì để ngăn chặn chúng về cơ bản giết chết một phần của SSD trong vài giờ / ngày bằng cách liên tục viết mọi lúc? SSD khá dễ bị tiêu diệt hơn hầu hết mọi người nghĩ , đặc biệt là trong môi trường nặng.


Tôi đã giải quyết vấn đề 'làm điều đó khiến cho zeroing trở nên vô nghĩa', chúng là hai thứ khác nhau
Chopper3

1
if (time < 9am) chriss_try_again()
Chris S

haha - đừng lo lắng anh chàng :)
Chopper3

Trong khi đúng về dữ liệu, ít đúng về việc giết chóc. "Ổ đĩa flash doanh nghiệp" có tuổi thọ cũng như kích thước khá tốt hơn so với ổ SSD tiêu dùng, nhưng cũng giống như ổ cứng doanh nghiệp bạn phải trả phí cho hiệu năng. Theo seagate, "Pulsar" ESD của họ có tuổi thọ 5 năm, tương đương với khoảng 6 petabyte viết. anandtech.com/show/2739/2 - Trên Pulsar Drive virtualgeek.typepad.com/virtual_geek/2009/02/ trên - Trên EFDs
Daniel B.

3
Tôi biết Daniel, tôi mua rất nhiều ổ SSD doanh nghiệp mà tôi đã đặt vào môi trường đọc 99% nhưng khi chúng tôi thử nghiệm chúng tôi vẫn thấy thật dễ dàng để "tiêu diệt" chúng, ví dụ như chúng tôi đặt hai chiếc HP thành một cặp được nhân đôi đĩa nhật ký cho hộp Oracle 10 khá bận rộn và mọi thứ bắt đầu sai trong vòng 4 tuần. Bây giờ, đây là ~ 10 tháng trước, vì vậy, đây không phải là phiên bản cải tiến của ổ đĩa Pulsar đó. 6PB tương đương ~ 38 MB / giây trong 5 năm hoặc ~ 180 MB / giây trong một năm - vì vậy bạn không thể sử dụng Pulsar để quay một kênh video HD mà không bị vỡ trong vòng một năm.
Chopper3

3

Vì vậy, nó đáng để đọc các bài viết như thế này . Nếu ai đó có quyền truy cập vật lý vào đĩa thì việc lấy thông tin sẽ dễ dàng hơn. Bạn đã xem xét việc mã hóa dữ liệu trên SSD và sau đó tất cả những gì bạn cần làm là quên an toàn khóa riêng, đây sẽ là một vấn đề dễ dàng hơn. Tôi có thể thấy SSD là một chiến thắng lớn trên vps vì hiệu suất truy cập ngẫu nhiên tốt hơn nhiều.


2

Bạn chắc chắn không muốn sử dụng các phương pháp xóa SSD truyền thống, chẳng hạn như sử dụng dd để loại bỏ dữ liệu hoặc các phương pháp khác ghi dữ liệu ngẫu nhiên vào đĩa. Những phương pháp này phù hợp hơn cho đĩa dựa trên đĩa. Nó có hiệu quả trong việc xóa SSD, nhưng nó cũng sẽ sử dụng không cần thiết nhiều hoạt động ghi hạn chế của SSD, do đó làm giảm tuổi thọ dự kiến ​​của SSD. Điều đó sẽ trở nên đắt đỏ một cách nhanh chóng. Nó cũng có thể làm giảm hiệu suất của SSD theo thời gian.

SSD có phương pháp khác nhau để xóa an toàn. Tôi sẽ nói rằng nó có vẻ rất phức tạp để làm, bởi vì bạn thường cần một loại bộ điều khiển SATA nhất định có thể thực hiện mô phỏng IDE và quy trình có thể phức tạp. Một số nhà sản xuất cung cấp các công cụ để xóa an toàn ổ SSD của riêng họ, nhưng bạn cũng có thể làm điều đó với hdparm trên Linux: https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase . Nhưng bạn sẽ nhận thấy trong các hướng dẫn đó rằng bạn phải đảm bảo ổ đĩa không bị "đóng băng" trước khi bạn có thể tiếp tục. Đây là một trong những bước khó khăn hơn vì nó yêu cầu tìm bộ điều khiển bo mạch chủ & SATA cho phép bạn "giải phóng" ổ đĩa trong khi hệ thống được khởi động, thường liên quan đến việc rút phích cắm ra khỏi cáp SATA, sau đó cắm lại.

Dù sao, đề nghị của tôi là thực hiện nghiên cứu của bạn và chọn một ổ SSD đi kèm với tiện ích xóa an toàn có thể được sử dụng trên một hệ thống thuận tiện cho bạn.


Sử dụng dd để loại bỏ đĩa, miễn là bạn sử dụng kích thước khối lớn phù hợp và không phải mặc định là 512 byte, sẽ không sử dụng nhiều chu kỳ ghi / xóa. Nó sẽ sử dụng khoảng 1. Tôi nói khoảng vì tôi thừa nhận rằng nếu căn chỉnh hệ thống tập tin của bạn sai, bạn có thể sẽ ghi vào cùng một khối flash hai lần trong một số trường hợp. Sử dụng dd bs=1Msẽ dẫn đến hao mòn tối thiểu.
Daniel Lawson

2

Mặc dù một câu trả lời đã được chấp nhận, tôi nghĩ rằng lệnh blkdiscard /dev/sdXvẫn đáng được đề cập ở đây.

Theo Arch Wiki: SSD , blkdiscardlệnh sẽ loại bỏ tất cả các khối và tất cả dữ liệu sẽ bị mất. Bạn nên sử dụng trước khi "bạn muốn bán SSD".

Tôi không quen với cách TRIM hoạt động vì vậy tôi không biết liệu có đảm bảo rằng dữ liệu sẽ bị xóa hay không. Nhưng tôi nghĩ nó tốt hơn là không làm gì cả.

BTW, tôi e rằng lệnh này chỉ hoạt động trên toàn bộ thiết bị, không phải cho một phân vùng duy nhất.

Hi vọng điêu nay co ich. :)


blkdiscarddường như không an toàn trong mọi trường hợp, vì TRIMbản thân nó chỉ là một yêu cầu và không phải tất cả các bộ điều khiển SSD đều tôn trọng nó. Bạn có thể đọc thêm về nó ở đâyở đây . Nhưng như đã giải thích ở đó, nhân Linux duy trì một danh sách trắng trong đó các thiết bị được biết đến để tôn vinh TRIM.
nh2

Vì vậy, nếu hdparm -I /dev/theSSDcó chứa Deterministic read ZEROs after TRIM, blkdiscardnên nhanh chóng và đảm bảo các số 0 được đọc sau đó. Nếu không, Secure Erase có vẻ như là giải pháp tốt hơn. Tuy nhiên, do câu hỏi liên quan đến bảo mật khách hàng, Secure Erase có thể là giải pháp tốt hơn vì dường như nó được thiết kế cho các trường hợp sử dụng như vậy.
nh2

1

Cách tốt nhất để xóa dữ liệu khỏi hình ảnh máy ảo là sử dụng tính năng TRIM. Nhiều hệ điều hành mới hơn hỗ trợ điều này. Hầu như tất cả các SSD hiện tại cũng hỗ trợ nó.

Và, điều làm cho tùy chọn này trở nên tốt hơn nữa là vì bất kỳ SAN nào cũng hỗ trợ tính năng này dưới tên SCM của UNMAP . Đó là một lệnh tuyệt vời cho SAN thực hiện cung cấp thưa thớt, đây là một tính năng tuyệt vời cho các máy ảo, đặc biệt là khi kết hợp với sao chép khối.

Khi lệnh TRIM được cấp cho SSD, phần sụn sẽ ngay lập tức đánh dấu các khối đó miễn phí để sử dụng lại. Một số ổ SSD sẽ luôn trả về số không cho các khối TRIM . Các ổ đĩa khác sẽ trả về dữ liệu được xác định theo thực hiện (nghĩa là ngẫu nhiên).

Trên các hệ điều hành hỗ trợ TRIM, việc xóa tệp đơn giản sẽ đánh dấu các khối cho TRIM. Hoạt động TRIM thực tế có thể xảy ra ngay lập tức hoặc có thể được thực hiện theo đợt để thực hiện sau. Đôi khi, có những công cụ sẽ buộc-TRIM một tệp hoặc quét một phân vùng cho tất cả các khối không sử dụng.

Hiệu suất TRIM trên Linux vẫn còn nhiều điểm, vì vậy nếu bạn đang sử dụng, bạn sẽ muốn điều tra các tùy chọn của mình. Trên Windows có vẻ khá chắc chắn.


Xin lỗi nhưng điều này không có ý nghĩa gì cả. TRIM, theo như tôi biết, không liên quan gì đến việc cung cấp mỏng, nó chỉ đơn giản nói với SSD rằng đừng bận tâm đến các lĩnh vực cân bằng hao mòn mà nó không biết đã bị xóa bởi hệ thống tập tin, nó cũng đặc biệt không không có khối ra.
Chopper3

@ Chopper3: Bạn không thể thấy rằng ATA TRIM và SCSI UNMAP là cùng một lệnh? UNMAP chắc chắn được sử dụng trong cung cấp mỏng. TRIM không chặn các khối trên ít nhất một số ổ SSD. Sau khi TRIM dữ liệu biến mất : không có phương thức nào được hỗ trợ để truy xuất nó, ổ đĩa cũng có thể trả về số không và một số thì làm.
Zan Lynx

"Ổ đĩa cũng có thể trả về số không" và "dữ liệu không thể phục hồi" là hai điều rất khác nhau. Trong mọi trường hợp, người dùng thực sự không muốn xóa SSD, anh ta chỉ không muốn khách hàng tiếp theo có thể lấy dữ liệu của khách hàng cũ, điều này cũng không giống nhau.
Chris S

0

Bạn cần một "Tiện ích xóa an toàn SSD". Nếu bạn sử dụng một cái gì đó như ddcân bằng hao mòn có thể bắt đầu và bạn sẽ kết thúc với các khu vực dự trữ vẫn chứa dữ liệu khách hàng cũ. Một tiện ích xóa an toàn sẽ xóa tất cả các cung trên thiết bị (không chỉ các phần được trình bày dưới dạng đĩa cho HĐH).

Một số tiện ích này dành riêng cho một nhà sản xuất cụ thể, hãy hỏi nhà sản xuất ổ đĩa của bạn để biết khuyến nghị của họ, họ sẽ biết rõ hơn chúng tôi.


Xin lỗi, đây không phải là thứ tôi đang tìm, vì tôi không muốn xóa toàn bộ đĩa. Tôi không quan tâm đến việc dữ liệu khách hàng vẫn có sẵn trên đĩa SDD vật lý - Tôi chỉ không muốn một khách hàng khác có thể truy cập được thông qua rò rỉ dữ liệu trên LV của họ.
jtnire

0

Tôi không nghĩ rằng việc viết 0 sẽ giúp bạn ngăn khách hàng khác đọc đĩa.

Trong SSD, khi bạn viết một cái gì đó, quá trình này rất khác so với một Đĩa cứng thông thường.

Hãy tưởng tượng tình huống sau: một ô nhớ "trống" trong ổ SSD chứa đầy 1 giây. Khi bạn viết một cái gì đó cho nó, nó viết 0 và giữ nguyên 1s.

Sau đó, khi bạn muốn lưu một cái gì đó khác nhau, nội dung trước đó và nội dung mới được so sánh. Nếu cái trước có thể trở thành cái mới bằng cách viết ra một số 0, ok. Nếu không thể làm điều đó, một ô nhớ khác sẽ được sử dụng.

"Xóa": 11111111 Lưu lần 1: 11011011

dữ liệu mới: 00110011 không có cách nào để biến 11011011 trở thành 00110011 (lưu ý rằng cần phải biến 0 thành 1 và không thể thực hiện điều đó trong SSD). Vì vậy, một ô nhớ khác sẽ được sử dụng.

Khi bạn TRIM một ổ đĩa, bạn đang đặt lại tất cả các ô nhớ không sử dụng thành 1. Vì vậy, chúng sẽ rõ ràng để được sử dụng lại. Và dữ liệu đã lưu được bảo tồn.

Để làm những gì bạn muốn: đầu tiên, xóa (xóa) các tập tin. Các ô nhớ cho các tệp đó sẽ được đánh dấu là miễn phí. Sau đó thực hiện TRIM: tất cả các ô nhớ đó sẽ trở thành 1, không có bất kỳ dấu hiệu dữ liệu nào.


0

Dễ trả lời: Sử dụng Linux để định dạng lại phân vùng dưới dạng EXT4, thông báo cho SSD tất cả các khối sẵn sàng để xóa, như thực hiện cắt xén trên tất cả các lĩnh vực của phân vùng. Tác dụng phụ là một số lượng nhỏ ghi (cấu trúc EXT4).

Quên ddˋ với ngẫu nhiên, điều đó sẽ làm giảm tuổi thọ SSD rất nhiều. Một số SSD thông minh và nếu chúng thấy toàn bộ khu vực chứa đầy số không chúng không ghi, chúng sẽ đánh dấu nó để xóa.

Vì bạn không thể biết nội bộ trên phần cứng, nên lựa chọn tốt nhất của bạn là định dạng lại phân vùng dưới dạng ext4 (không có định dạng lại đầy đủ, chỉ là cấu trúc nhanh, chỉ cấu trúc) trên nhân linux hiện đại, nó sẽ cắt bớt toàn bộ phân vùng trước khi định dạng nó.

Để tất cả những người nói về xóa an toàn, đó là cho toàn bộ SSD cùng một lúc, những gì được hỏi chỉ là một phân vùng của SSD và KHÔNG làm mất phần còn lại của thông tin được lưu trữ trên đó (cấp phân vùng, không phải cấp SSD).

Kết luận: định dạng lại thành Ext4, sau đó nếu bạn cần định dạng khác, định dạng lại một lần nữa trên định dạng khác.

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.