именование устройств zfs vs smartctl vs iostat - PullRequest
0 голосов
/ 25 мая 2018

Я работаю над сбором метрик производительности из SAN (5.11 omnios-7648372).мы используем dataon 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 и оно «совпадает» с smartctl ... если только smart ctl не указал путь / dev / rdsk / c1t0d0s0

Но iostat -extnc 3 1 'называет устройство по-другому: c1t0d0

Пожалуйста, скажите, пожалуйста, почему три из них не использовали одно и то же имя для одного и того же устройства?

1 Ответ

0 голосов
/ 26 мая 2018

zdb показывает вам path, который ZFS использует внутренне для адресации устройства, - это путь в файловой системе /dev, который обеспечивает доступ к файлу блочного устройства.(Кстати, zdb в основном подразумевается как инструмент отладки, и не гарантируется обратная совместимость для всего, что он печатает.) Для адресации используется срез диска суффикс s0, которыйпочему это появляется в тех списках.Я считаю, что дисковые фрагменты в основном такие же, как разделы.Срез 0 обычно представляет собой весь диск, когда вы используете ZFS, так как при добавлении всего устройства в zpool ZFS автоматически отформатирует устройство для вас, и ему нужен только один срез.Тем не менее, также возможно добавить только один раздел диска к вашему zpool (или, что еще глупее, несколько разделов на одном диске как отдельный vdevs), поэтому ZFS должна отслеживать, какие разделы на самом делев управлении.

iostat показывает только имя устройства без пути /dev или номера среза.Это потому, что iostat не знает о срезах и просто смотрит на фактическое устройство, когда собирает свои данные.

Я не знаю, что случилось с smartctl.Я ожидаю, что он будет работать на уровне устройства, например iostat, но, возможно, он получает данные, передаваемые ему через ZFS, которая использует номер среза.Это кажется мне ошибкой, так как в идеале вы должны сообщать об ошибках в наименьшем домене ошибок, частью которого они являются, в данном случае это диск.(Хотя, по крайней мере, это легко обойти.)

...