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