设备命名 zfs vs smartctl vs iostat
device naming zfs vs smartctl vs iostat
我正在从 SAN (5.11 omnios-7648372) 收集性能指标数据。
我们使用 JBOD 上的数据。
zdb -C mypoolname 的输出片段:
children[0]:
type: 'disk'
id: 0
guid: 7701924650939559899
path: '/dev/dsk/c1t0d0s0'
devid: 'id1,sd@n5000c5004cce9b53/a'
phys_path: '/pci@0,0/pci8086,25f7@2/pci8086,350c@0,3/pci1000,3030@1/sd@0,0:a'
whole_disk: 1
DTL: 599
create_txg: 4
关注'path'部分,它说'/dev/dsk/c1t0d0s0'我假设设备名称是c1t0d0s0并且它'match'与smartctl ...除非smart ctl说路径是/dev/rdsk/c1t0d0s0
但是 'iostat -extnc 3 1' 以不同方式命名设备:c1t0d0
请告诉我为什么他们三个没有为同一台设备使用相同的名称?
zdb
向您展示 ZFS 内部用于寻址设备的 path
,这是 /dev
文件系统中允许访问块设备文件的路径。 (顺便说一下,zdb
主要用作调试工具,不保证它打印的任何内容都具有向后兼容性。)它使用 disk slice 后缀 s0
进行寻址,这这就是为什么会出现在这些列表中的原因。我相信磁盘片基本上与分区相同。当您使用 ZFS 时,分片 0 通常是整个磁盘,因为当您将整个设备添加到 zpool
时,ZFS 会自动为您格式化该设备并且它只需要/创建一个分片。但是,也可以只将磁盘的一个分区添加到 zpool
(或者更愚蠢的是,在同一驱动器上添加多个分区作为单独的 vdevs
),因此 ZFS 必须跟踪哪个分区( s) 它实际上在控制中。
iostat
只显示设备名称,没有 /dev
路径或切片编号。这是因为 iostat
不知道切片,它在收集数据时只查看实际设备。
我不知道 smartctl
是怎么回事。我希望它能像 iostat
那样在设备级别工作,但也许它正在通过使用切片编号的 ZFS 将数据传递给它。这对我来说似乎是一个错误,因为理想情况下,您会在它们所属的最小故障域中报告错误,在本例中是磁盘。 (尽管至少它很容易变通。)
我正在从 SAN (5.11 omnios-7648372) 收集性能指标数据。 我们使用 JBOD 上的数据。
zdb -C mypoolname 的输出片段:
children[0]:
type: 'disk'
id: 0
guid: 7701924650939559899
path: '/dev/dsk/c1t0d0s0'
devid: 'id1,sd@n5000c5004cce9b53/a'
phys_path: '/pci@0,0/pci8086,25f7@2/pci8086,350c@0,3/pci1000,3030@1/sd@0,0:a'
whole_disk: 1
DTL: 599
create_txg: 4
关注'path'部分,它说'/dev/dsk/c1t0d0s0'我假设设备名称是c1t0d0s0并且它'match'与smartctl ...除非smart ctl说路径是/dev/rdsk/c1t0d0s0
但是 'iostat -extnc 3 1' 以不同方式命名设备:c1t0d0
请告诉我为什么他们三个没有为同一台设备使用相同的名称?
zdb
向您展示 ZFS 内部用于寻址设备的 path
,这是 /dev
文件系统中允许访问块设备文件的路径。 (顺便说一下,zdb
主要用作调试工具,不保证它打印的任何内容都具有向后兼容性。)它使用 disk slice 后缀 s0
进行寻址,这这就是为什么会出现在这些列表中的原因。我相信磁盘片基本上与分区相同。当您使用 ZFS 时,分片 0 通常是整个磁盘,因为当您将整个设备添加到 zpool
时,ZFS 会自动为您格式化该设备并且它只需要/创建一个分片。但是,也可以只将磁盘的一个分区添加到 zpool
(或者更愚蠢的是,在同一驱动器上添加多个分区作为单独的 vdevs
),因此 ZFS 必须跟踪哪个分区( s) 它实际上在控制中。
iostat
只显示设备名称,没有 /dev
路径或切片编号。这是因为 iostat
不知道切片,它在收集数据时只查看实际设备。
我不知道 smartctl
是怎么回事。我希望它能像 iostat
那样在设备级别工作,但也许它正在通过使用切片编号的 ZFS 将数据传递给它。这对我来说似乎是一个错误,因为理想情况下,您会在它们所属的最小故障域中报告错误,在本例中是磁盘。 (尽管至少它很容易变通。)