Thành Phần – Nguyên Lý – Cách Hoạt Động Và Lưu Trữ Dữ Liệu Của Ổ Cứng Cơ (HDD & SAS)

Các thành phần vật lý của đĩa cứng

 

Platter

Đĩa từ, bên trong một ổ đĩa cơ bao gồm các đĩa từ (thường được làm bằng hợp kim của nhôm, đôi khi là thủy tinh, gốm)

Spindle

Con quay, còn được biết như là một motor quay điện, motor này sẽ kéo theo các đĩa từ quay để đọc/ghi dữ liệu, tốc độ của con quay là tốc độ của đĩa cứng (RPM), thường có 2 tốc độ với HDD là 5400rpm và 7200rpm, đối với chuẩn SAS có thêm 10k (10000 rpm) và 15k (15000rpm)

Read/Write Heads (các đầu đọc ghi)

Các đầu từ đọc ghi là một phần không thể thiếu của ổ đĩa cơ, nhiệm vụ của nó là đọc dữ liệu từ đĩa từ hoặc ghi dữ liệu vào đĩa từ, có 2 đầu đọc ở phía trên và dưới một đĩa từ, đầu này nằm trên Actuator Arm Assembly (tạm dịch: cánh tay chuyển động)
(Hình mô tả các bạn xem ở trên)

Actuator

Điều khiển sự dài ngắn của Arm, giúp đầu đọc có khả năng di chuyển để lựa vị trí đọc/ghi
(Hình mô tả các bạn xem ở trên)

Drive Controller Board (Logic Board)

Tạm dịch: Bảng điều khiển ổ đĩa, là một mạch được tích hợp bên trong đĩa cơ, mạch này gồm các đầu kết nối tới chuẩn kết nối (SAS, SATA) và nguôn điện, bảng này cũng làm nhiệm vụ nhận tín hiệu từ PC và điều khiển các thanh phần trên của ổ cứng (Spindle, Read/Write Heads, Actuator,…)

(Hình mô tả các bạn xem ở trên)

Các thành phần Logic của Đĩa Cứng

 

Track

Mỗi khi các đầu đọc/ghi từ quay ở một vị trí khác nhau trên đĩa từ sẽ tạo ra các vòng tròn khác nhau trên đĩa từ, vòng tròn này được gọi là Track
Vòng tròng này không cố định, có thể thay đổi bằng low level-format

Sector và Cluster

Các Track được chia thành nhiều phần gọi là sector, mỗi sector chứa 512 byte (các ổ cứng đời mới được Advanced Format để có size sector là 4096byte <=> 4kB)
Địa chỉ Sector = địa chỉ track + số sector, số thứ tự Sector được đánh từ trong ra ngoài (từ tâm ra ngoài bán kính)
Trước đây số lượng các Sector trên toàn bộ Track của Platter sẽ giống nhau, tuy nhiên, từ sau khi sử dụng phương pháp Zoned Bit Recording (ZBR) thì số lượng các Sector của các Track sẽ không giống nhau nữa, chi tiết về ZBR mình sẽ đề cập bên dưới
(Điểm A là Track của ổ cứng Điểm B và C là các Sector Điểm D là Cluster – hình dưới)

Tập hợp các Sector nối tiếp nhau trên cùng một Track được gọi là Cluster và dữ liệu sẽ được ghi trên Cluster chứ không ghi trên các Sector riêng lẻ.
Cách tính Cluster phụ thuộc vào cách format (định dạng) ổ cứng, thường đối với định dạng NTFS của Windows mặc định Format là 4kB tức 1 Cluster sẽ phải chứa 4kB mà nếu Sector được Format là 512byte <=> 4096/512 = 8 Sector, như vậy, trong quá trình ghi dữ liệu, bất cứ dữ liệu nào được ghi ổ cứng sẽ tìm Cluster có chứa đủ 8 Sector liền kề nhau để ghi các dữ liệu lên, nếu không đủ 8 Sector sẽ bỏ trống và tìm đến Cluster tiếp theo, đây cũng chính là nguyên nhân gây phân mảnh ổ cứng nên sau một thời gian sử dụng cần phải chống phân mảnh để sắp xếp lại dữ liệu cũng..

Cylinder

Tập hợp các Track có cùng bán kính ở các Platter khác nhau được gọi là Cylinder, việc định danh Cylinder để sử dụng xác định vị trí của dữ liệu trong hệ tọa độ CHS (Cylinder-Heads (Tracks)-Sector)

Zoned Bit Recording (ZBR)

Là phương pháp tăng không gian lưu trữ của đĩa cứng bằng cách tăng số lượng Sector trên mỗi Track
Trước đây, khi lưu trữ dữ liệu trên đĩa, người ta định dạng số lượng Sector của các Track trên đĩa là như nhau, tuy nhiên, đễ dàng nhận thấy rằng, càng xa tâm thì chu vi của các Track càng lớn, và nếu chỉ sử dụng số lượng Sector như vậy thì số lượng các Bit được ghi trên diện tích các Sector sẽ ngày càng ít => có thể tạo nhiều Sector hơn ở các Track bên ngoài, vì vậy người ta thực hiện ZBR
ZBR sẽ chia đĩa thành các vùng (Zone) và trên các Zone này, số lượng Sector sẽ như nhau, các Zone gần tâm sẽ có số Sector ít hơn các Zone ở ngoài

VD bên trên: đĩa được chia là 3 Zone (đỏ, xanh lá, trắng) mỗi Zone số lượng Sector sẽ khác nhau, kích thước của Sector cũng thay đổi vì diện tích của nó đã khác. (ảnh Wikipedia)

Đánh dấu dữ liệu, địa chỉ CHS vs LBA

  • Để xác định vị trí của dự liệu nằm ở đâu, người ta phải quy ước một hệ tọa độ, trước hệ tọa độ CHS (Cylinder-Heads-Sector) được sử dụng để đánh dấu vị trí của dữ liệu,
    • Như đã nêu bên trên, một ổ đĩa cứng bao gồm nhiều Platter bên trong, và tham số Cylinder nhằm xác định vị trí của dữ liệu được lưu ở Platter nào trong số tất cả các Platter của ổ đĩa (giới hạn từ 0-1023)
    • Tiếp theo là thông số Heads, thông số này cho biết vị trí của Heads trên phiến đĩa, mình đã giải thích ở trên: mỗi vị trí của Heads sẽ tạo ra một Track khác nhau trên bề mặt của Platter, chính vì vậy thông số này cho biết dữ liệu được lưu ở Track nào (giới hạn 0-255)
    • Cuối cùng là vị trí của Sector để định vị dữ liệu (giới hạn từ 0-63)
    • Các con số này tính trên lý thuyết, thực tế không thể kiếm nổi cái HDD nào có 1024 cái Platter được :LOL
    • Nếu định dạng mỗi Sector chứ 512byte dữ liệu vậy tổng dữ liệu mà CHS hỗ trợ là 1024*255*63*512 = 8,422,686,720 bytes = 7,844 GB, vì vậy để hỗ trợ các hệ thống lưu trữ lớn, chuẩn LBA ra đời
  • LBA hay Logic Block Address là một loại địa chỉ ra đời nhằm mục đích bổ sung cho CHS, LBA đánh dấu một cách “flat” chứ không dựa vào hệ trục cho các Block, Block đầu tiên của đĩa có số thứ tự là 0, kế tiếp là 1, và tăng dần lên, xuyên suốt các Cylinder , không phải thuộc vào hệ tham chiếu CHS như 0/0/1. (hình dưới)
    Chú ý: đơn vị Block trong LBA <=> Sector

5/5 - (1 vote)