这是关于 RHEL5 和 RHEL6 上的 Linux 存储设备名称的问题
大多数存储设备可以使用设备名 /dev/sda、/dev/sdb 等访问。我所说的存储设备是指可以像常规文件系统一样分区、格式化和安装的设备。
但是HP服务器使用/dev/cciss/c0d0,/dev/cciss/c0d1等作为设备名,可能是历史原因。
这意味着命令或脚本需要特殊情况来处理 /dev/cciss/cxdx 而不是 /dev/sdx
据我了解,RHEL6 中的 cciss 模块已经被 hpsa 模块取代,从而消除了这种不一致性。
然而,这是一个更普遍的问题——是否存在其他非标准存储设备名称可能会使仅寻找 /dev/sdx 的命令或脚本出错?
答案1
您所说的“存储设备”通常被称为“块设备”。如果您正在编写与块设备交互的脚本,那么最好的办法似乎是枚举其中的内容/sys/class/block
并从那里开始工作,或者使用其中的各种条目/dev/disk
(事实上,在 RHEL5 下,后者似乎可能是更好的选择)。这样,您就可以向系统请求可用块设备的列表,而不必在代码中维护一些设备名称表。
在我看来,您可能会遇到的其他块设备包括:
virtio
块设备(/dev/vda
等)- 循环设备 (
/dev/loop0
) - 设备映射器设备(
/dev/mapper/...
和/dev/dm-0
) - Xen 虚拟磁盘(
/dev/xvda
) - Ceph RBD 设备 (
/dev/rbd/...
)
并非所有块设备都可以分区,但它们都可以容纳文件系统。