Назад | Перейти на главную страницу

RHEL 6 iSCSI LUN

У меня есть система RHEL, настроенная как цель iSCSI с 2 логическими объектами, совместно используемыми через одну цель, с помощью следующей конфигурации в /etc/tgt/targets.conf (которую я построил после закомментированных примеров в /etc/tgt/targets.conf ):

<target iqn.2014-04.com.local.box:ESXi.target1>
        backing-store /dev/ESXi_VG/ESXi_LUN_01 #LUN01
        backing-store /dev/ESXi_VG/TEST_LUN_01 #LUN02
</target>

Они предназначены для совместного использования на паре хостов ESXi в качестве хранилища данных.

Первоначально я создал один логический том LVM 4,00 ТБ на vg ESXi_VG для хранилища данных; однако я понял, что мне понадобится второй LUN для тестирования Iops через RDM на виртуальную машину, хранящуюся в локальном хранилище на хосте ESXi. С этой целью я создал второй логический том LVM 5,00 ГБ в той же группе томов и добавил запись LUN для второго LUN в целевой конфигурации, которую я показал выше. Затем я отключил LUN 4,00 ТБ на моем хосте ESXi и перезапустил tgtd.

Я сейчас вижу некоторые странные вещи. Во-первых, вот вывод команды tgt-admin -s для отображения текущих LUN:

[root@box ~]# tgt-admin -s
Target 1: iqn.2014-04.com.local.box:ESXi.target1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 5369 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/ESXi_VG/TEST_LUN_01
            Backing store flags:
    Account information:
    ACL information:
        ALL

Как вы можете видеть, отображается только 1 LUN, а не 2, а отображаемый LUN - это только LUN объемом 5,00 ГБ, который я добавил позже. Если я удалю или закомментирую запись LUN, она покажет только LUN 0, контроллер, а не LUN ​​1.

Тем не менее, ESXi может видеть LUN 4,00 ТБ и монтировать его, форматировать и т. Д. То, что он не видит, так это раздел 5,00 ГБ, несмотря на то, что он совместно используется через ту же цель iSCSI.

В результате у меня возникла пара вопросов:

  1. Tgt-admin показывает только LUN, которые в данный момент не подключены к инициатору? Если нет, то почему мое хранилище данных объемом 4,00 ТБ больше не отображается?

  2. Как я могу заставить второй LUN отображаться в ESXi, чтобы я мог подключить его к виртуальной машине через RDM для тестирования iops?

Вот что я обнаружил, что проблема была. После того, как меня отозвали из этого проекта из-за корпоративного слияния, он был снова брошен мне на тарелку, и я решил начать с нуля. На этот раз я создал LUN, RH_ISCSI_LV_001, и поделился им с помощью демона iscsi. Мне удалось смонтировать и отформатировать его в vSphere.

Я снова отключил LUN и остановил tgtd для редактирования /etc/tgt/targets.conf чтобы добавить второй тестовый LUN, который я бы использовал для тестирования производительности, сопоставив его гостю с помощью RDM. Еще раз, когда я запустил tgtd up, отображался только 1 LUN.

Я предположил, что проблема может заключаться в том, что LUN не читается tgtd после того, как VMware отформатировал его, поэтому я попытался уничтожить его с помощью lvremove. он выдал ошибку ioctl (device-mapper: remove ioctl on failed: Device or resource busy) и не удалял.

Покопавшись, я выполнил команду lsof /dev/ESXi_VG/RH_ISCSI_LV_001 и обнаружил, что pid 2251 был процессом блокировки. быстрый ps -ef и я узнал, что tgtd в какой-то момент не закрылся чисто, и, поскольку ничто не мешало запуску второго процесса tgtd (очевидно), он сохранил «право собственности» на LUN и, таким образом, не позволял каждому последующему процессу tgtd, который я порождал, касаться его . быстрое убийство -9 и service tgtd start позже, и оба моих LUN были видны ESXi.