Каково поведение rtnetlink при добавлении или удалении Ethernet к / от моста?

Пока я изучаю RTNETLINK, я понимаю, что ядро ​​отправит RTM_ADDLINK или RTM_DELLINK, если интерфейс добавлен / удален в пространстве ядра. Однако у меня есть вопрос относительно сообщения RTNETLINK при добавлении или удалении Ethernet к / от моста? Поскольку добавление или удаление Ethernet к / от моста фактически не добавляет или не удаляет интерфейс, ниже приведены выходные данные targetcli ls и systemctl status -l target

targetcli ls
o- / ................................................................................................ [...]
  o- backstores ..................................................................................... [...]
  | o- block ......................................................................... [Storage Objects: 0]
  | o- fileio ........................................................................ [Storage Objects: 0]
  | o- pscsi ......................................................................... [Storage Objects: 0]
  | o- ramdisk ....................................................................... [Storage Objects: 0]
  o- iscsi ................................................................................... [Targets: 1]
  | o- iqn.2017-01.com.urgroup-tz:target ........................................................ [TPGs: 1]
  |   o- tpg1 ...................................................................... [no-gen-acls, no-auth]
  |     o- acls ................................................................................. [ACLs: 1]
  |     | o- iqn.2017-01.com.urgroup-tz:initiator ........................................ [Mapped LUNs: 0]
  |     o- luns ................................................................................. [LUNs: 0]
  |     o- portals ........................................................................... [Portals: 1]
  |       o- 0.0.0.0:3260 ............................................................................ [OK]
  o- loopback ................................................................................ [Targets: 0]

# systemctl status -l target
● target.service - Restore LIO kernel target configuration
   Loaded: loaded (/usr/lib/systemd/system/target.service; enabled; vendor preset: disabled)
   Active: active (exited) since Ij 2017-03-10 17:18:43 EST; 1 day 18h ago
 Main PID: 1342 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/target.service

Mac 10 17:18:43 server1 target[1342]: Could not create StorageObject tools_disk: Cannot configure StorageObject because device /dev/cl/tools_lv is already in use, skipped
Mac 10 17:18:43 server1 target[1342]: Could not create StorageObject bamboo_disk: Cannot configure StorageObject because device /dev/cl/bamboo_lv is already in use, skipped
Mac 10 17:18:43 server1 target[1342]: Could not create StorageObject metadata_disk: Cannot configure StorageObject because device /dev/cl/ovirt_domain_metadata is already in use, skipped
Mac 10 17:18:43 server1 target[1342]: Could not find matching StorageObject for LUN 2, skipped
Mac 10 17:18:43 server1 target[1342]: Could not find matching StorageObject for LUN 1, skipped
Mac 10 17:18:43 server1 target[1342]: Could not find matching StorageObject for LUN 0, skipped
Mac 10 17:18:43 server1 target[1342]: Could not find matching TPG LUN 0 for MappedLUN 0, skipped
Mac 10 17:18:43 server1 target[1342]: Could not find matching TPG LUN 1 for MappedLUN 1, skipped
Mac 10 17:18:43 server1 target[1342]: Could not find matching TPG LUN 2 for MappedLUN 2, skipped
Mac 10 17:18:43 server1 systemd[1]: Started Restore LIO kernel target configuration.
0
задан 12 March 2017 в 21:42
3 ответа

Перед перезагрузкой убедитесь, что служба включена:

systemctl enable target

Здесь помогает.

mistige

1
ответ дан 4 December 2019 в 13:34

Вы должны запустить target.service при загрузке, чтобы восстановить конфигурацию LIO, а также убедиться, что iscsid.service запущен для экспорта ваших устройств LIO и что tgtd не запущен, так как он будет конфликт с другими демонами LIO.

Должно выглядеть примерно так:

root@centos7host# systemctl | grep "target.service\|iscsi"
iscsi-shutdown.service                                                                                               
loaded active exited    Logout off all iSCSI sessions on shutdown
iscsi.service                                                                                                        
loaded active exited    Login and scanning of iSCSI devices
iscsid.service                                                                                                       
loaded active running   Open-iSCSI
iscsiuio.service                                                                                                     
loaded active running   iSCSI UserSpace I/O driver
target.service                                                                                                       
loaded active exited    Restore LIO kernel target configuration
iscsid.socket                                                                                                        
loaded active running   Open-iSCSI iscsid Socket
iscsiuio.socket                                                                                                      
loaded active running   Open-iSCSI iscsiuio Socket

Вы также захотите очистить все, что вы делали до этого, потому что это запутается. У вас, вероятно, есть тома, которые были созданы вне LIO, поэтому, когда вы позже перейдете к управлению ими с помощью targetcli, у вас будут некоторые вещи, которые не экспортируются должным образом, и это может запутать.

Если возможно, я бы рекомендовал стереть систему и начать с чистого листа, если у вас есть такая возможность. Правильная настройка подсистемы iscsi с самого начала очень важна, так как работать с ней после ее запуска опасно, так как у вас есть много потенциально деструктивных действий, которые вы можете сделать с данными ваших пользователей.

1
ответ дан 4 December 2019 в 13:34

В случае, если вы используете пул управляемого хранилища LVM для устройств поддержки, вы должны убедиться, что LVM/Devicemapper отбрасывает VGs/LVs второго уровня.

Что я имел в виду под VGs/LVs второго уровня; например:

Предположим, что нижележащие LVs (DISK_1) имеют другой VG, инициализированный клиентом iSCSI, и используемый для сервисов внутри клиента. Будет два разных VG слоя на одном диске, один VG внутри другого.

Если ваша подсистема LVM сканирует на наличие VG внутри LV первого уровня, вновь обнаруженные VG второго уровня и LV внутри него будут сопоставлены с целевым сервером. Так как LVs картируются на целевой сервер (Devicemapper), lio_target модули не смогут загрузить их в качестве backores.

[root@target ~]# pvs
  PV                 VG           Fmt  Attr PSize  PFree
  /dev/mapper/mpatha STORAGE_POOL lvm2 a--  12.00t 2.50t
[root@target ~]# lvs
  LV     VG               Attr   LSize
  DISK_1 STORAGE_POOL -wi-ao---- 5.00t
  DISK_2 STORAGE_POOL -wi-ao---- 1.00t
  DISK_3 STORAGE_POOL -wi-ao---- 2.50t
  DISK_4 STORAGE_POOL -wi-ao---- 1.00t
[root@target ~]#

LVM ищет VG и LVs во время загрузки ОС. Поэтому вы не осознали проблему в первую очередь.

Вы должны установить LVM фильтр для поиска новых VG внутри дисков. Смотрите инструкцию lvm.conf для global_filter. Используя эту конфигурацию, вы сможете отбрасывать ВГ второго уровня. Ниже приведен пример вышеописанной архитектуры хранилища, только для сканирования VG внутри PV и отбрасывания остальных блочных устройств.

[root@target ~]# diff /etc/lvm/lvm.conf{,.orginal}
152d151
<       global_filter = [ "a|/dev/mapper/mpath.|", "r|.*/|" ]
[root@target ~]#

Вы можете просто использовать скрипт для запуска "vgchange -an 2nd_layer_VG" после загрузки и восстановления LIO-целевой конфигурации. Однако я предлагаю использовать "global_filter" LVM.

Примечание: До CentOS 7/Red Hat 7 не было проблем с инициализацией LV второго уровня, targetd мог загружать их как LUN'ы. Однако, новый linux-iscsi(LIO) в этой ситуации провалился. Я не перенаправлял вопрос дальше.

Regards...

0
ответ дан 4 December 2019 в 13:34

Теги

Похожие вопросы