Enable the block layer 块设备支持

优质
小牛编辑
121浏览
2023-12-01

Enable the block layer
块设备支持

Enable the block layer
CONFIG_BLOCK
块设备支持,使用SSD/硬盘/U盘/SCSI/SAS设备者必选.除非你是某些特殊的嵌入式系统,否则没有理由不使用块设备.
Block layer SG support v4
CONFIG_BLK_DEV_BSG
为块设备启用第四版SG(SCSI generic)
支持.v4相比v3能够支持更复杂的SCSI指令(可变长度的命令描述块,双向数据传输,通用请求/应答协议),而且UDEV也要用它来获取设备的序列
号.对于使用systemd的系统来说,建议选"Y".对于不使用systemd的系统,如果你需要通过/dev/bsg/*访问块设备,也建议开启此选
项,否则(通过/dev/{sd*,st*,sr*})可以关闭.
Block layer SG support v4 helper lib
CONFIG_BLK_DEV_BSGLIB
你不需要手动开启此选项,如果有其他模块需要使用,会被自动开启.
Block layer data integrity support
CONFIG_BLK_DEV_INTEGRITY
某些块设备可以通过存储/读取额外的信息来保障端到端的数据完整性,这个选项为文件系统提供了相应的钩子函数来使用这个特性.如果你的设备支持 T10/SCSI Data Integrity Field 或者 T13/ATA External Path Protection 特性,那么可以开启此选项,否则建议关闭.
Block layer bio throttling support
CONFIG_BLK_DEV_THROTTLING
Bio Throttling 支持,也就是允许限制每个cgroup对特定设备的IO速率.细节可以参考"Documentation/cgroups/blkio-controller.txt".
Block device command line partition parser
CONFIG_BLK_CMDLINE_PARSER
允许通过内核引导参数设定块设备的分区信息(Documentation/block/cmdline-partition.txt).仅对某些嵌入式设备有意义.
Advanced partition selection
CONFIG_PARTITION_ADVANCED
如果你想支持各种不同的磁盘分区格式(特别是与UEFI配合使用的GPT格式),务必选中此项.
Acorn partition support
CONFIG_ACORN_PARTITION
Acorn 操作系统使用的分区格式,请根据实际情况选择子项,这里省略
Alpha OSF partition support
CONFIG_OSF_PARTITION
Alpha 平台上使用的分区格式
Amiga partition table support
CONFIG_AMIGA_PARTITION
AmigaOS 使用的分区格式
Atari partition table support
CONFIG_ATARI_PARTITION
Atari OS 使用的分区格式
Macintosh partition map support
CONFIG_MAC_PARTITION
苹果的Macintosh平台使用的分区格式
PC BIOS (MSDOS partition tables) support
CONFIG_MSDOS_PARTITION
渐成历史垃圾,但目前依然最常见的DOS分区格式.除非你确信不使用此格式,否则必选.其下的子项根据实际情况选择.
Windows Logical Disk Manager (Dynamic Disk) support
CONFIG_LDM_PARTITION
使用 Windows Logical Disk Manager 创建的分区格式.参见"Documentation/ldm.txt"
SGI partition support
CONFIG_SGI_PARTITION
SGI 平台上使用的分区格式
Ultrix partition table support
CONFIG_ULTRIX_PARTITION
DEC/Compaq Ultrix 平台上使用的分区格式
Sun partition tables support
CONFIG_SUN_PARTITION
SunOS 平台上使用的分区格式
Karma Partition support
CONFIG_KARMA_PARTITION
Rio Karma MP3 player 使用的分区格式
EFI GUID Partition support
CONFIG_EFI_PARTITION
代表未来趋势,眼下正大红大紫的EFI GPT(GUID Partition Table)分区格式.建议开启.如果你在UEFI平台上安装则必须开启.
SYSV68 partition table support
CONFIG_SYSV68_PARTITION
Motorola Delta 机器上使用的分区格式
IO Schedulers
IO调度器(另一篇文章)
Deadline I/O scheduler
CONFIG_IOSCHED_DEADLINE
deadline调度器.简洁小巧(只有400+行代码),提供了最小的读取延迟,非常适合同一时间只有少数个别进程进行IO请求的情况.如果你希望尽快读取磁盘,而不介意写入延迟,那它是最佳选择.通常对于数据库工作负载有最佳的表现.
CFQ I/O scheduler
CONFIG_IOSCHED_CFQ
cfq(Complete Fair Queuing)调度器.努力在各内核线程间公平分配IO资源,适用于系统中存在着大量内核线程同时进行IO请求的情况.但对于只有少数内核线程进行密集IO请求的情况,则会出现明显的性能下降.
CFQ Group Scheduling support
CONFIG_CFQ_GROUP_IOSCHED
允许将CFQ和cgroup组合使用,也就是将每个cgroup看成一个整体,在各cgroup之间进行IO资源的分配.参见"Documentation/cgroups/blkio-controller.txt"文件.还可以参考一下《Linux内核精髓》中的"使用Block I/O控制器"一章.
BFQ I/O scheduler
CONFIG_IOSCHED_BFQ
bfq(Budget Fair Queueing)调度器.这是一个基于CFQ调度器的改进版本,更适合于对交互性要求比较高的场合,比如桌面系统和实时系统.如果静态编译进内核,还支持和cgroup配合,实现分层调度(hierarchical scheduling).
BFQ hierarchical scheduling support
CONFIG_CGROUP_BFQIO
通过cgroup文件系统接口,允许将BFQ分层使用(类似CONFIG_CFQ_GROUP_IOSCHED),这个子系统的名字是"bfqio".
Default I/O scheduler
默认IO调度器.如果上述调度器都是模块,那么将使用最简单的内置NOOP调度器.NOOP(No Operation)调度器只是一个简单的FIFO队列,不对IO请求做任何重新排序处理(但还是会做一定程度的归并),适合于SSD/U盘/内存/虚拟机硬盘/SAN(Storage Area Networks)等无需寻道的存储设备,重点是可以节约CPU资源,但不适用于普通硬盘这样的需要依靠磁头来定位的设备.另外,有人说拥有TCQ/NCQ技术(能够自动重新排序)的硬盘也适合用NOOP调度器,这个说法其实并不那么合理,但笔者在此不敢断言,希望读者在严谨的测试之后再做定夺.