Kích thước cung cấp vật lý 512 byte mặc định có phù hợp với các ổ SSD trong Linux không?


10

GSmartControl và bất kỳ công cụ dòng lệnh khác (như fdisk, smartctl, cat /sys/block/sd*/queue/hw_sector_size, cat /sys/block/sd*/queue/physical_block_size) tôi đã sử dụng báo cáo giống nhau cho cả hai đĩa của tôi:

Sector Size: 512 bytes logical/physical

Đây là bản cài đặt Ubuntu 18.10 mặc định (sau này được nâng cấp lên 19.04). Tuy nhiên, stat -flệnh trên cả hai đĩa báo cáo:

Block size: 4096       Fundamental block size: 4096

Cả hai ổ đĩa của tôi là SSD và ổ SSD AFAIK yêu cầu kích thước cung cấp 4K . Đây là OK hay tôi đang thiếu một cái gì đó? Thông tin được trả về bởi stat(= 4K) có đảm bảo rằng HĐH sẽ luôn gửi IO đến đĩa trong nhiều 4K và các khối này sẽ không bao giờ vượt qua ranh giới 4K (khối IO sẽ luôn được căn chỉnh theo 4K) không?

Xin lưu ý đầu ra sau ( sdb2phân vùng gốc của tôi , sda/homeđĩa của tôi ):

# fdisk -l /dev/sd?
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: SanDisk SDSSDH35
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Disk model: ADATA SU800NS38 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: xxxx....

Device       Start       End   Sectors  Size Type
/dev/sdb1     2048   1050623   1048576  512M EFI System
/dev/sdb2  1050624 500117503 499066880  238G Linux filesystem

# df / /home
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sdb2      244568380  17799136 214276188   8% /
/dev/sda       479670976 129685112 325550152  29% /home

Đúng. Nó không chứa thông tin hữu ích. Nhưng, tôi chưa tìm thấy câu trả lời chính đáng cho câu hỏi: Thông tin được trả về bởi stat (4K) có đảm bảo rằng HĐH sẽ luôn gửi IO đến đĩa trong nhiều 4K và các khối này sẽ không bao giờ vượt qua ranh giới 4K (khối IO sẽ luôn luôn được căn chỉnh theo 4K)?
FedonKadifeli

Tôi không biết "stat (4K)" là gì. Nhưng hầu hết các hệ điều hành hiện đại đều biết cách xử lý chuyển giao 4K I / O gốc. Và không, điều đó không có nghĩa là các khối sẽ không bao giờ vượt qua các giới hạn 4K trên đĩa trừ khi các phân vùng được căn chỉnh chính xác. Sử dụng fdisk -lđể kiểm tra các vấn đề liên kết. Và rõ ràng SSD hoạt động hơi khác một chút, do cấu trúc vật lý của chúng, nhưng tôi không phải là chuyên gia trong lĩnh vực đó.
heynnema

Câu trả lời:


7

Ngày xưa, các cung 512 byte là chuẩn mực cho các đĩa. Hệ thống được sử dụng để đọc / ghi các lĩnh vực chỉ một khu vực tại một thời điểm và đó là điều tốt nhất mà các ổ đĩa cứng cũ có thể làm.

Bây giờ, với các ổ đĩa hiện đại quá dày đặc, và quá nhanh và thông minh, các lĩnh vực đọc / viết chỉ có một lĩnh vực tại một thời điểm thực sự làm chậm tổng thông lượng.

Bí quyết là ... làm thế nào để bạn tăng tốc tổng thông lượng, nhưng vẫn duy trì khả năng tương thích với các hệ thống con đĩa cũ / tiêu chuẩn? Bạn tạo kích thước khối 4096 được tạo thành từ tám cung vật lý 512 byte. 4096 hiện là chuyển / đọc tối thiểu đến / từ đĩa, nhưng nó đã được chuyển trong các mâm 512 byte tương thích với HĐH.

Điều này có nghĩa là ngay cả khi hệ thống chỉ cần một cung thông tin 512 byte, ổ đĩa sẽ đọc tám cung 512 byte để có được nó. Tuy nhiên, nếu hệ thống cần bảy lĩnh vực tiếp theo, thì nó đã đọc chúng, do đó không có I / O đĩa nào xảy ra ... do đó tăng tốc độ trong tổng thông lượng.

Các hệ điều hành hiện đại hoàn toàn có thể tận dụng kích thước khối 4K nguyên bản của các ổ đĩa hiện đại.


+1 nhưng 4096/512 = 8, vì vậy tôi nghĩ nên có 8 lĩnh vực (logic) là 512 b trong một lĩnh vực vật lý là 4096 b. Tôi sử dụng partedđể hiển thị cả kích thước khu vực logic và vật lý.
sudodus

@sudodus Bắt tốt. Chỉnh sửa thực hiện.
heynnema

Đây là lý do tại sao điều quan trọng là căn chỉnh các phân vùng của bạn thành ranh giới 4k, nếu không, mỗi tải / khối 4k thực sự chạm vào hai lĩnh vực phần cứng. (Hệ thống tập tin bên trong các phân vùng thường sử dụng các khối 4k được căn chỉnh theo điểm bắt đầu của phân vùng). Một số công cụ định dạng sắp xếp phân vùng đầu tiên theo 1MiB, khiến toàn bộ MiB không được sử dụng ngoại trừ bảng phân vùng. Ổ đĩa hiện đại làm báo cáo kích thước ngành vật lý của họ như là 4k, tách biệt với kích thước ngành logic của họ mà vẫn là 512B.
Peter Cordes

@PeterCordes, Không chỉ khu vực khởi động và bảng phân vùng (trong 512 byte đầu tiên) được lưu trữ trong Mibibyte đầu tiên. Trong bảng phân vùng MSDOS, grubđặt mã bổ sung vào Mibibyte đầu tiên để khởi động ở chế độ BIOS. (Trong GPT, grubcần một phân vùng nhỏ có bios_grubcờ để mã đó khởi động ở chế độ BIOS).
sudodus

4

Theo Wikipedia "Định dạng nâng cao (AF) là bất kỳ định dạng khu vực đĩa nào được sử dụng để lưu trữ dữ liệu trong các ổ đĩa vượt quá 512, 520 hoặc 528 byte cho mỗi khu vực, chẳng hạn như các lĩnh vực 4096 byte của Ổ đĩa định dạng nâng cao (AFD)." Định dạng nâng cao (AF) là định dạng đĩa vốn sử dụng kích thước cung là 4.096 byte thay vì 512 byte. Để duy trì khả năng tương thích với các hệ thống cũ, các đĩa AF mô phỏng kích thước cung từ 512 byte.

Tôi đã nhận được kết quả giống như bạn nhận được bằng cách chạy stat -fsmartctltrên hai ổ SSD. Cả hai ổ SSD đều được HĐH tự động nhận dạng khi chúng được cài đặt và yêu cầu cấu hình bằng không, do đó, có vẻ như dữ liệu bạn nhận được là cài đặt mặc định cho kích thước khối và kích thước cung.


@heynnema Tôi không thể làm bất cứ điều gì về "các cung 4096 byte" vì nó được sao chép từ Wikipedia, vì vậy tôi phải để nó giống như trong Wikipedia.
karel

2
@heynnema: Kích thước vật lý lớn hơn nhiều. SSD được xây dựng từ bộ nhớ flash NAND, "được phân vùng vật lý trong cái gọi là" khối xóa ". Chúng có thể lớn hơn nhiều, 4MB là hoàn toàn có thể.
MSalters

1

Kích thước cung cấp vật lý 512 byte mặc định có phù hợp với các ổ SSD trong Linux không?

Cả hai ổ đĩa của tôi là SSD và ổ SSD AFAIK yêu cầu kích thước cung cấp 4K. Đây là OK hay tôi đang thiếu một cái gì đó?

Phần cứng và hệ điều hành cũ đã sử dụng các cung 512 byte, kể từ năm 2011 (gần như) tất cả phần cứng lưu trữ có 4096 (hoặc lớn hơn ) các byte byte; nhưng một số phần cứng hỗ trợ mô phỏng các cung 512 byte cho các hệ thống cũ. Có một số trường hợp ngoại lệ, SSD Samsung 840 EVO có các khối có kích thước 2048 KB .

Một Lỗi Correcting Code (ECC) được tính cho mỗi 512 byte đoạn, và như bạn có thể tưởng tượng, ECC dữ liệu cũng đòi hỏi không gian lưu trữ. Không cần phải nói rằng một ngành 4096 byte yêu cầu ít thông tin ECC hơn tám khối 512 byte nếu thuật toán ECC không thay đổi. Cuối cùng, tổng dung lượng lưu trữ của ổ cứng tăng lên do kết quả của chi phí dữ liệu ECC ít hơn.

Sử dụng các lĩnh vực 4K có ý nghĩa từ quan điểm kiến ​​trúc, vì các số liệu quan trọng khác (như các trang bộ nhớ x86 và nhiều cụm hệ thống tệp) cũng sử dụng kích thước 4 KB. Định dạng nâng cao cho phép các thuật toán ECC mạnh mẽ hơn, điều này rất quan trọng đối với khả năng ngày càng tăng. Bộ điều khiển sử dụng các kỹ thuật bổ sung ngoài sửa lỗi thông qua sự hiểu biết về các đặc điểm lỗi bộ nhớ flash NAND và hành vi khối lượng công việc.

Định dạng nâng cao (AF) là bất kỳ định dạng cung cấp đĩa nào được sử dụng để lưu trữ dữ liệu trên các đĩa từ trong ổ đĩa cứng (HDD) vượt quá 512, 520 hoặc 528 byte cho mỗi cung, chẳng hạn như 4096, 4112, 4160 và 4224 byte ( Các lĩnh vực 4 KB) của Ổ đĩa định dạng nâng cao (AFD). Các lĩnh vực lớn hơn cho phép tích hợp các thuật toán sửa lỗi mạnh hơn để duy trì tính toàn vẹn dữ liệu ở mật độ lưu trữ cao hơn.

Đối với các đĩa SCSI (SAS), kích thước khối RAID lớn hơn kích thước khối JBOD do các trường toàn vẹn dữ liệu được chuẩn hóa SCSI T10 cùng với kiểm tra khối xấu logic được lưu trữ trên mỗi khối với dữ liệu. Bộ điều hợp RAID SAS hỗ trợ các khối đĩa dựa trên 512 byte dữ liệu hoặc 4K byte dữ liệu. Kích thước khối RAID cho các đĩa 512 là 528 Byte cho mỗi cung và kích thước khối RAID cho các đĩa 4K là 4224 byte cho mỗi cung.

Bởi vì bạn đang ghi vào bộ nhớ và không phải kích thước khu vực vật lý của đĩa quay có ít tác dụng hơn là đảm bảo rằng các phân vùng của bạn được căn chỉnh với kích thước khối xóa . Mặc dù vậy, tốt nhất là luôn cập nhật phần mềm và phần cứng và sử dụng kích thước cung cấp 4K.

Kích thước khu vực lớn hơn được Intel khuyến nghị - " Đạt hiệu suất tối ưu bằng cách thay đổi kích thước khu vực vật lý của SSD ".

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.