sebae banner ad-300x250
sebae intro coupon 30 off
sebae banner 728x900
sebae banner 300x250

Large Block I/O for Linux – Hannes Reinecke, SUSE Labs

0 views
0%

Large Block I/O for Linux - Hannes Reinecke, SUSE Labs

Large Block I/O for Linux – Hannes Reinecke, SUSE Labs

Historically, block I/O is done in sectors of 512 bytes, and the linux storage stack has been designed around that. Linux internally is using the CPU page size as the smallest unit to be managed individually, so any memory allocation will eventually devolve into a memory page, and a single page is the smallest unit of memory which can be allocated. For swapping and allocating pages need to be written to disk, and the storage stack has to ensure that contents of the page end up on disk. With devices getting larger and larger this size became impractical, and modern devices like NVMe typically ship with 4k bytes sector sizes. This still works for linux, as here both the CPU page size and the sector size are identical. However, even 4k sectors might be suboptimal for fast devices, and also the management overhead for 4k sectors is substantial for really large devices like 20TB and beyond. So there is some value to be had to move to larger sector sizes. This currently doesn’t work for Linux as the page size determines the largest possible sector size. In this presentation I will outline the current development for using large block sizes under linux, outline possible benetifs, and give some demonstration of a system using large block sizes.

Date: October 5, 2023