Linux设备名称:除了/ dev / cciss之外,还有哪些其他非标准存储设备名称

这是关于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中的后者可能是更好的select)。 这样你就可以向系统询问可用块设备的列表,而不必在代码中维护一些设备名称表。

在我的头顶上,您可能遇到的其他块设备包括:

  • virtio块设备( /dev/vda等)
  • 循环设备( /dev/loop0
  • 设备映射器设备( /dev/mapper/.../dev/dm-0
  • Xen虚拟磁盘( /dev/xvda
  • Ceph RBD设备( /dev/rbd/...

并不是所有的块设备都可以分区,但是它们都可以容纳一个文件系统。