Change background image

Cơ bản về ổ lưu trữ SSD và Một số câu hỏi

Thảo luận trong 'Kiến thức cơ bản' bắt đầu bởi kuembmt, 19 Tháng tám 2013.

  1. kuembmt

    kuembmt Moderator Staff Member

    Tuy được nhắm đến để thay thế ổ cứng truyền thống trong nhiều ứng dụng, cách SSD lưu trữ và truy cập dữ liệu rất khác so với ổ cứng. Trong bài viết này, chúng tôi sẽ giải thích cách làm việc của chúng một cách dễ hiểu nhất, cũng như giải thích một số câu hỏi liên quan đến SSD.

    [​IMG]
    Bảng mạch của một SSD. Bộ phận duy nhất giống với một ổ cứng thông thường là giao diện SATA​

    Để hiểu cách hoạt động của SSD, hãy bắt đầu với hai bộ phận quan trọng nhất: chip điều khiển (controller) và bộ nhớ NAND flash. Hai bộ phận này, cùng một vài bộ phận khác, được đặt trên cùng một bảng mạch gọi là mạch in (PCB), và sau đó được đặt trong vỏ để tạo thành ổ SSD.

    Chip điều khiển

    Trong một SSD, chip điều khiển là một vi xử lý được tích hợp, điều khiển giao tiếp giữa bộ nhớ flash và máy chủ (thường là máy tính). Chip điều khiển sẽ xử lý các lệnh được tạo bởi firmware (một hệ điều hành dành riêng) của SSD để đáp ứng các nhu cầu dữ liệu từ máy chủ. Chip điều khiển quyết định hiệu năng của SSD, cũng như các tính năng nó có thể cung cấp.

    Một số tính năng phổ biến được thực hiện bởi chip điều khiển bao gồm ghi, đọc, xóa, kiểm tra lỗi, mã hóa, garbage collection, wear-leveling, RAISE và over-provisioning. (những khái niệm này sẽ được giải thích ở phần sau) .

    Không nên nhầm lẫn giữa chip điều khiển của SSD, với chip điều khiển giao diện I/O (vào/ra), như Serial ATA (SATA), là chip quyết định giao tiếp vật lý giữa ổ lưu trữ (SSD hay ổ cứng) với máy chủ. Hầu hết các SSD thông thường hỗ trợ chip điều khiển SATA, cho phép sử dụng các chuẩn kết nối như SATA (150 Mbps), SATA 2 (3 Gpbs), và SATA 3 (6 Gbps). Bạn có thể thấy ngay giao diện kết nối của SSD khi nhìn bề ngoài, còn chip điều khiển hoạt động của SSD được đặt bên trong vỏ và người dùng không thể nhìn thấy được.

    Bộ nhớ NAND flash

    Tất cả những SSD tiêu chuẩn hiện tại đều sử dụng bộ nhớ NAND flash, là mạch tích hợp có chức năng lưu thông tin. Các ổ SSD dành cho doanh nghiệp thường sử dụng loại NAND SLC (single-level-cell, ô nhớ một cấp), trong khi ổ SSD cho người dùng thông thường sử dụng các NAND MLC (nhiều cấp). Sự khác biệt giữa hai loại NAND này là số bit nhớ được lưu trên một ô nhớ (cell). NAND MLC có thể lưu 2 hoặc 3 bit nhớ trên một ô, còn NAND SLC chỉ lưu 1 bit nhớ trên một ô. Nhờ vậy, SSD dùng NAND MLC có thể lưu nhiều thông tin hơn với cùng số ô nhớ; bù lại SSD dùng NAND SLC có hiệu năng và tuổi thọ cao hơn, do đó cũng đắt hơn nhiều.

    [​IMG]
    Sự khác nhau giữa NAND SLC và NAND MLC là số bit nhớ lưu trên một cell.​

    Thay vì việc ghi vào phiến đĩa từ như trên ổ cứng, việc ghi dữ liệu vào một SSD xảy ra khi chip điều khiển ghi thông tin vào một ô nhớ. Nói một cách đơn giản thì một ô nhớ có hai trạng thái là bật (1) và tắt (0), và được điều khiển bởi điện áp, như vậy nó có thể lưu thông tin dưới dạng nhị phân. Trong thực tế thì việc ghi thông tin lên SSD phức tạp hơn nhiều. Tuy vậy, việc đọc từ SSD khá đơn giản.

    Ô nhớ NAND flash có một số đặc điểm thú vị. Thứ nhất, số lần có thể ghi dữ liệu lên chúng là một số giới hạn, và sau đó chúng trở nên thiếu ổn định. Con số này được gọi là số lần ghi, hay số vòng ghi/xóa (P/E cycles). Để kéo dài thời gian này, chip điều khiển sử dụng một kỹ thuật gọi là wear-leveling (cân bằng hao mòn), nhằm đảm bảo ghi dữ liệu lên tất cả các ô nhớ trong ổ, trước khi ghi lại lên một ô nhớ bất kỳ.

    Đặc điểm thứ hai là, khác với ổ cứng, bộ nhớ NAND flash không thể ghi đè dữ liệu. Điều đó có nghĩa là nếu muốn ghi vào một ô đã có dữ liệu, trước tiên chip điều khiển cần xóa dữ liệu đã ghi trong ô đó.

    Tính năng thứ ba là sự thiếu hiệu quả khi xóa dữ liệu. Ở SSD, các ô nhớ được tập hợp lại thành các trang nhớ (page - thường có dung lượng là 4 kB), và các trang sau đó lại được tập hợp thành các khối (block - thường có dung lượng 512 kB, hay 128 page). Bạn có thể ghi theo từng trang, nhưng lại chỉ có thể xóa theo từng khối.

    [​IMG]
    Minh họa các page và block trên bộ nhớ NAND flash.​

    Khi người dùng xóa một dữ liệu trên SSD bằng lệnh trong hệ điều hành (và kể cả khi đã chọn xóa trong thùng rác) thì thực tế vẫn chưa có quá trình xóa. Hệ điều hành (như Windows) sẽ sử dụng một lệnh có tên là TRIM, đánh dấu thông tin bạn muốn xóa là "không hợp lệ", theo từng trang một. Việc xóa dữ liệu thực sự chỉ diễn ra khi người dùng muốn ghi thêm dữ liệu vào ổ. Như vậy, trừ khi bạn sử dụng một ổ SSD hoàn toàn mới, sẽ không có quá trình ghi nếu như việc xóa dữ liệu chưa được thực hiện. Như vậy khi ghi dữ liệu mới, chip điều khiển cũng đồng thời xóa đi các dữ liệu muốn xóa, gọi là quá trình "gom dữ liệu bỏ đi" (garbage collection).

    Wear-leveling và garbage colletion khiến cho dữ liệu đã được ghi vào một vị trí của SSD có thể bị xóa đi và ghi lại vào một vị trí khác, được gọi là hiện tượng write amplification.

    Write amplification (WA)

    Write amplification là để chỉ việc dữ liệu vật lý được ghi trên SSD thực chất lớn hơn so với lượng dữ liệu luận lý (logic) muốn ghi. Nói cách khác, SSD ghi vào nhiều hơn so với những gì mà máy chủ yêu cầu. Với các tính năng để tối ưu hiệu năng, đôi khi việc ghi dữ liệu không đơn giản là ghi một lần, mà bao gồm nhiều quá trình ghi – xóa. Hiện tượng WA làm tăng số vòng ghi/xóa của SSD.

    Tuy vậy, write amplification là hiện tượng bắt buộc phải có khi thực hiện các tính năng tối ưu SSD, giúp tối ưu hiệu năng và kéo dài tuổi thọ cho SSD. Vấn đề là cần phải cân bằng giữa lợi ích và nhược điểm của hiện tượng này. Như đã nói, hiện tượng này chủ yếu xảy ra do quá trình wear-levelling và garbage collection.

    Garbage colletion

    Đây là nguyên nhân chính dẫn tới hiện tượng write amplification. Trong một khối bộ nhớ, có thể tồn tại đồng thời một số trang đang ở trong trạng thái chờ xóa, cùng với một số trang lưu dữ liệu thông thường. Trước khi muốn xóa hết cả khối nhớ đó, đầu tiên chip điều khiển cần chuyển các trang lưu dữ liệu sang một khối khác.

    Bạn có thể nghĩ về điều này giống như khi quản lý một căn nhà cho thuê. Khi người thuê cũ chuyển đi, bạn cần phải dọn nhà trước khi cho người khác thuê. Giả sử người thuê cũ vẫn còn để lại một số vật dụng trong một căn phòng, bạn không thể chỉ dọn phần còn lại, cứ cho người mới chuyển đến ở, và sau đó mới dọn hết chỗ đồ kia đi; dù rằng có thể người thuê mới chưa cần dùng tới căn phòng đang có đồ. Bạn cần phải chuyển hết những đồ còn lại sang một căn hộ khác vẫn còn chỗ, và dọn sạch sẽ căn phòng kia trước khi người mới chuyển đến.

    Quá trình này xảy ra do bộ nhớ NAND flash không thể ghi đè dữ liệu lên ô nhớ - nó cần phải xóa dữ liệu cũ trước khi ghi dữ liệu mới; đồng thời, dữ liệu có thể ghi theo từng trang, nhưng lại phải xóa theo từng khối, là đơn vị lớn hơn trang.

    Wear-leveling

    Đây là kỹ thuật sắp xếp dữ liệu để việc xóa và ghi dữ liệu được phân bố đều trên toàn bộ SSD, nhằm đảm bảo không có một khối dữ liệu nào bị ghi quá số lần quy định do ghi không đều. Một số thuật toán còn tạm thời chuyển các dữ liệu ít thay đổi (như các tập tin cần thiết cho hệ điều hành hay các chương trình) vào các vùng đã ghi nhiều, để sử dụng các vùng ghi ít hơn cho các dữ liệu thường xuyên thay đổi. Điều này giúp cho tất cả các khối dữ liệu trên SSD đạt số vòng ghi xóa tương đương nhau, giúp kéo dài tuổi thọ của ổ.

    Write amplification diễn ra trên tất cả các SSD, và nó cần có dung lượng trống, như một bộ nhớ đệm để có thể hoạt động. Do vậy bạn cần phải để lại một số chỗ trống, khoảng 20% dung lượng ổ, để tính năng này có thể hoạt động. Tuy nhiên điều này có thể không cần thiết nếu như ổ có sẵn một phần dung lượng trống cho các hoạt động trên, gọi là over-provisioning.

    Over-provisioning (OP)

    OP có nghĩa là một phần dung lượng được dành riêng cho hoạt động của chip điều khiển, và người dùng không thể sử dụng phần dung lượng này. Chip điều khiển có thể dùng phần dung lượng này cho các hoạt động như wear-leveling, garbage collection hay các tính năng tối ưu hiệu năng khác.

    Lại trở về với ví dụ về việc cho thuê nhà. OP giống như bạn dành riêng một căn phòng trong khu nhà để bỏ các đồ thừa vào đó, thay vì phải sử dụng một căn hộ có thể cho thuê.

    Thông thường, phần dung lượng được dành ra rơi vào khoảng 7 đến 28% tổng dung lượng ổ. Do vậy, các ổ SSD có tính năng OP thường được liệt kê dung lượng là số chẵn, như 120 GB, 240 GB hay 480 GB, thay vì dung lượng thông thường như 128 GB, 256 GB hay 512 GB. Một số SSD, như ổ Samsung 840 Pro, cho phép người dùng quản lý dung lượng. Các ổ khác tự động sử dụng phần dung lượng trống cho tính năng này.

    Về lý thuyết, OP sẽ giúp tăng hiệu năng của SSD (do chip điều khiển đã có riêng một vùng, chứ không phải tìm kiếm chỗ trống trên ổ để làm bộ nhớ đệm). Tuy nhiên khi kiểm nghiệm thực tế, chúng tôi thấy không hẳn lúc nào cũng như vậy.

    Một số thuật ngữ thông dụng khác về SSD

    TRIM: Lệnh TRIM được đưa ra để cho phép hệ điều hành thông báo với chip điều khiển SSD về các trang lưu dữ liệu không cần thiết (các dữ liệu đã được đánh dấu là xóa hay không hợp lệ, do người dùng đưa ra lệnh xóa). Sau đó, các trang đã được đánh dấu sẽ bị xóa đi, trả lại dung lượng trống cho ổ đúng như con số mà hệ điều hành thông báo. Với SSD thì số ô trống nhiều hơn cũng tương đương với hiệu năng cao hơn.

    RAISE: Đây là tính năng chỉ có trên các ổ dùng chip điều khiển SandForce. RAISE giúp giảm tỉ lệ hư hỏng của đĩa và cung cấp tính năng mã hóa AES. Trong thực tế, RAISE phù hợp hơn với môi trường doanh nghiệp thay vì các ổ cho người dùng phổ thông.

    IOPS (Input/Output Operations Per Second – Số lệnh vào/ra trong một giây): Đây là đơn vị tính cho các truy cập ngẫu nhiên. Truy cập ngẫu nhiên là khả năng truy cập vào dữ liệu ở một vị trí bất kỳ, trong một khoảng thời gian rất ngắn. Truy cập ngẫu nhiên thường được dùng đến khi truy cập các dữ liệu có kích thước rất nhỏ và đây là điểm mạnh của SSD.

    Thời gian truy cập ngẫu nhiên, cũng như độ trễ của nó, quyết định tốc độ máy chủ có thể truy cập dữ liệu, và ảnh hưởng đến thời gian khởi động máy, bật ứng dụng, và hiệu năng nói chung. Truy cập ngẫu nhiên trên ổ cứng thông thường là khá chậm, vào khoảng 75 đến 250 IOPS. Trong khi đó tốc độ truy cập ngẫu nhiên trên SSD lại rất nhanh, vào khoảng 20.000 đến 100.000 IOPS hoặc thậm chí cao hơn.

    Hỏi đáp:

    Hỏi: Ổ cứng của laptop tôi hiện tại có dung lượng 1 TB. Tôi có thể dùng phần mềm chuyển dữ liệu về một ổ SSD có dung lượng 256 GB được không?

    Đáp: Được, miễn là lượng dữ liệu mà bạn đang có ít hơn 256 GB. Lý tưởng nhất thì bạn nên giảm dung lượng xuống còn khoảng 200 GB, để SSD có dung lượng thực hiện các tác vụ tối ưu hiệu năng, như đã nói ở trên. Cần lưu ý rằng một số phần mềm chuyển dữ liệu không hỗ trợ chuyển từ một ổ có dung lượng lớn tới ổ có dung lượng nhỏ hơn. Dù vậy, những phần mềm tốt, như Acronis True Image, cho phép làm điều này.

    Hỏi: Tôi có ổ Crucial M4 512 GB, được sử dụng làm ổ chính ở máy Macbook Pro, để lưu hệ điều hành, ứng dụng, và các tập tin liên quan. Ổ phụ là ổ theo máy có dung lượng 500 GB, để lưu tài liệu, thư viện, ảnh và phim. Liệu tôi có phải lo SSD sẽ hết tuổi thọ của nó trong khoảng 5 năm nữa không?

    Đáp: Với các loại dữ liệu của bạn, và giả sử cường độ sử dụng của bạn vào loại thông thường, kể cả khi bạn để tất cả dữ liệu lên SSD (nhưng đừng dùng hết dung lượng) thì nó cũng không dùng hết số vòng ghi/xóa trong vòng 20 năm nữa.

    Hỏi: Tôi được biết rằng những ứng dụng chia sẻ file, như BitTorrent, có thể làm hỏng SSD. Điều này có đúng không?

    Đáp: Chúng sẽ không làm hỏng ổ của bạn theo kiểu vật lý, nhưng do tải xuống cũng là một quá trình ghi vào ổ, nó cũng sẽ làm tăng số vòng ghi/xóa của ổ, vậy nên hãy dùng cẩn thận!

    Hỏi: Laptop của chúng tôi có cổng SATA 3 Gbps. Liệu khi chuyển sang dùng SSD tôi có nhận được hiệu năng hơn hẳn không, hay một ổ Seagate hybrid cũng là đủ rồi?

    Đáp: Chắc chắn bạn sẽ thấy hiệu năng được cải thiện rõ rệt nếu đổi từ ổ cứng sang dùng SSD. Ổ hybrid cũng sẽ giúp tăng hiệu năng, nhưng không được nhiều như SSD.

    Hỏi: Sử dụng SSD cho các giải pháp lưu trữ mạng, ví dụ như cắm vào một router qua cổng USB, có ổn không?

    Đáp: Không, hoàn toàn không ổn chút nào. Tốc độ mạng tối đa cũng chỉ ở mức Gigabit Ethernet, tức là 1000 Mbps hay khoảng 130 MBps. Do vậy sử dụng SSD trong trường hợp này là quá phí phạm. Trường hợp duy nhất bạn nên sử dụng SSD cho giải pháp mạng là khi bạn cần dùng một máy chủ dữ liệu cho Web (như SQL). Khi đó SSD có thể giúp tăng tốc độ của Website.

    Hỏi: Nếu tôi sử dụng SSD của hãng thứ ba cho máy Mac OS 10.8 thì có cần phải làm gì đặc biệt không? Gần đây tôi có lắp một chiếc Samsung 840, và một số hướng dẫn cho biết tôi cần phải điều chỉnh để có thể bật TRIM, và một số hướng dẫn cho biết không bật cũng chẳng sao. Nếu như cần thì có thể chỉ giúp tôi phải điều chỉnh thế nào không?

    Đáp: Bạn nên bật TRIM, vì nó là tính năng rất quan trọng giúp SSD hoạt động hiệu quả. Các máy Mac thường không hỗ trợ TRIM khi lắp đặt các ổ SSD của hãng khác, nhưng bạn có thể sử dụng công cụ Trim Enable để bật tính năng này.

    Hỏi: Gần đây tôi đã lắp thêm SSD vào máy tính dựng từ năm 2008. Hiệu năng tăng lên rất đáng kể, nhưng tốc độ SATA trên bo mạch chủ của tôi chỉ đạt mức 3 Gb/s. Nếu tôi dùng bo mạch chủ có SATA 6 Gb/s thì có cải thiện được nhiều không? Và liệu có đáng lắp một ổ SSD vào máy PS3 không?

    Đáp: Khi nâng cấp lên SATA 6 GB/s, hiệu năng có cải thiện nhưng không rõ ràng như khi bạn chuyển từ ổ cứng lên SSD. Không cần thiết phải mua một bo mạch chủ mới, trừ khi bạn cũng muốn những tính năng mới như hỗ trợ CPU, RAM nhanh hơn hay USB 3.0. Và cũng đáng để lắp SSD vào máy PS3, vì các trò chơi sẽ mở nhanh hơn rất nhiều.

    < Translate - "Câu hỏi: Mạng xã hội " >​
     
    Mitxitorang thích bài này.

Chia sẻ trang này