Администрирование DM-Multipath и устранение проблем Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
wiki:руководство_по_ubuntu_server:множественное_связывание_устройств:troubleshooting [2012/06/02 16:19]
создано
wiki:руководство_по_ubuntu_server:множественное_связывание_устройств:troubleshooting [2013/02/20 09:26] (текущий)
Строка 6: Строка 6:
 [[wiki:​руководство_по_ubuntu_server:​удаленное_администрирование|далее->​]]</​style>​ [[wiki:​руководство_по_ubuntu_server:​удаленное_администрирование|далее->​]]</​style>​
  
-=====DM-Multipath ​Administration and Troubleshooting=====+=====Администрирование ​DM-Multipath ​и устранение проблем=====
  
-    Resizing an Online Multipath Device +====Изменение размера работающего множественного устройства====
-    Moving root File Systems from a Single Path Device to a Multipath Device +
-    Moving swap File Systems from a Single Path Device to a Multipath Device +
-    The Multipath Daemon +
-    Issues with queue_if_no_path +
-    Multipath Command Output +
-    Multipath Queries with multipath Command +
-    Multipath Command Options +
-    Determining Device Mapper Entries with dmsetup Command +
-    Troubleshooting with the multipathd interactive console+
  
-====Resizing an Online Multipath Device====+Если вам требуется изменить размер работающего множественного устройства,​ используйте следующую процедуру:​
  
-If you need to resize an online ​multipath device, ​use the following procedure+  ** Измените размер вашего физического устройства. Эта операция зависит от платформы хранилища. 
 +  ** Используйте следующую команду для поиска маршрутов для логического номера узла (LUN): 
 +<​code># ​multipath ​-l</​code>​ 
 +  ** Измените размер маршрутов. Для SCSI устройств,​ запись 1 в файл rescan для устройства заставляет SCSI драйвер обновить информацию,​ как в следующей команде:​ 
 +<​code>#​ echo 1 > /​sys/​block/​device_name/​device/​rescan</​code>​ 
 +  ** Изменить размер множественного устройства запуском команды multipathd:​ 
 +<​code>#​ multipathd -k '​resize map mpatha'</​code>​ 
 +  ** Изменить размер файловой системы (предполагаетсячто не используется LVM и DOS разделы):​ 
 +<​code>#​ resize2fs /​dev/​mapper/​mpatha</​code>​
  
-    Resize your physical device. This is storage platform specific.+====Перенос корневой файловой системы с одиночного устройства на множественное====
  
-    Use the following command to find the paths to the LUN:+Это впечатляюще упрощено использованием UUID для идентификации устройств в качестве естественной метки. Просто установите multipath-tools-boot и перегрузитесь. Это перестроит изначальный ramdisk и предоставит multipath возможность построить маршруты до того как корневая система будет смонтирована по UUID.
  
-    # multipath -l+<​note>​Каждое обновление ​multipath.conf вынуждает initrd запустить update-initramfs -u -k all. Следствием этого является копирование multipath.conf на ramdisk и внедрение его для определения доступных устройств для группирования через их секции blacklist и device.</​note>​
  
-    Resize your paths. For SCSI devices, writing 1 to the rescan file for the device causes the SCSI driver to rescan, as in the following command:+====Перенос файловой системы подкачки с одиночного устройства на множественное====
  
-    ​echo 1 > /​sys/​block/​device_name/​device/​rescan+Процедура в точности такая же, как приведена в предыдущей секции [[#перенос_корневой_файловой_системы_с_одиночного_устройства_на_множественное|Перенос корневой файловой системы с одиночного устройства на множественное]].
  
-    Resize your multipath device by running the multipathd resize command: 
  
-    # multipathd -k '​resize map mpatha'​+====Сервис Multipath====
  
-    Resize the file system (assuming no LVM or DOS partitions are used):+Если вы испытываете трудности в настройке multipath, вам надо убелиться,​ что сервис multipath запущен как описано в [[wiki:руководство_по_ubuntu_server:​множественное_связывание_устройств:​overview|Обзоре установки DM-Multipath]]. Сервис multipathd должен быть запущен для того, чтобы использовать multipathd устройства. Также смотрите секцию [[#​решение_проблем_с_помощью_интерактивной_консоли_multipathd|Решение проблем с помощью интерактивной консоли multipathd]] касательно взаимодействия с multipathd как со средством отладки.
  
-    # resize2fs /​dev/​mapper/​mpatha+====Проблемы с queue_if_no_path====
  
-====Moving root File Systems from a Single Path Device to a Multipath Device====+Если установлены свойства **%%"1 queue_if_no_path"​%%** в файле /​etc/​multipath.conf,​ то любой процесс,​ использующий ввод-вывод,​ будет сбрасываться пока восстанавливаются один или несколько маршрутов. Для предотвращения этого установите параметр **no_path_retry N** в /​etc/​multipath.conf.
  
-This is dramatically simplified by the use of UUIDs to identify devices as an intrinsic labelSimply install ​multipath-tools-boot and rebootThis will rebuild the initial ramdisk and afford ​multipath ​the opportunity to build it's paths before the root file system is mounted by UUID.+Когда вы установите **no_path_retry** параметр,​ удалите также опции **%%"1 queue_if_no_path"​%%** из файла /​etc/​multipath.conf. Однако если вы используете множественное устройство,​ для которого опция **%%"1 queue_if_no_path"​%%** скомпилирована по умолчанию,​ как для множества устройств SAN, вам придется добавить значение **%%"​0"​%%** для переопределения этого умолчания. Вы можете это сделать копированием существующей секции **devices**,​ и только этой секции (а не всего файла),​ из /​usr/​share/​doc/​multipath-tools/​examples/​multipath.conf.annotated.gz в /etc/multipath.conf и редактированием ее по вашим потребностям.
  
-Whenever multipath.conf is updatedso should the initrd by executing update-initramfs -u -k allThe reason being is multipath.conf is copied to the ramdisk and is integral to determining the available devices for grouping via it's blacklist and device sections.+Если вам требуется использовать опцию **%%"1 queue_if_no_path"​%%** и вы испытываете отмеченные здесь проблемыиспользуйте команду для редактирования политики в процессе работы с определенным LUN (т.едля каждого недоступного маршрута)Например,​ если вы хотите изменить политику для множественного устройства mpathc с %%"​queue_if_no_path"​%% на %%"​fail_if_no_path"​%% выполните следующую команду:​ 
 +<​code>#​ dmsetup message mpathc 0 "​fail_if_no_path"</​code>​
  
-====Moving swap File Systems from a Single Path Device to a Multipath Device====+<​note>​Вы должны использовать псевдоним mpathN вместо пути.</​note>​
  
-The procedure is exactly the same as illustrated in the previous section called Moving root File Systems from a Single Path to a Multipath Device.+====Вывод команды multipath====
  
 +Когда вы создаете,​ изменяете или просматриваете множественные устройства,​ вы получаете вывод текущих настроек устройства. Формат показан ниже.
  
-====The Multipath Daemon====+Для каждого множественного устройства:​ 
 +<​code>​action_if_any:​ alias (wwid_if_different_from_alias) dm_device_name_if_known vendor,​product 
 +size=size features='​features'​ hwhandler='​hardware_handler'​ wp=write_permission_if_known</​code>​
  
-If you find you have trouble implementing a multipath configuration,​ you should ensure the multipath daemon is running as described in "​Setting up DM-Multipath"​. The multipathd daemon must be running in order to use multipathd devices. Also see section Troubleshooting with the multipathd interactive console concerning interacting with multipathd as a debugging aid.+Для каждой группы маршрутов:​ 
 +<​code>​-+- policy='​scheduling_policy'​ prio=prio_if_known 
 +status=path_group_status_if_known</​code>​
  
-====Issues with queue_if_no_path====+Для каждого маршрута:​ 
 +<​code>​`- host:​channel:​id:​lun devnode major:minor dm_status_if_known path_status 
 +online_status</​code>​
  
-If features ​"queue_if_no_path"​ is specified in the /etc/​multipath.conf file, then any process that uses I/O will hang until one or more paths are restored. To avoid this, set the no_path_retry N parameter in the /​etc/​multipath.conf.+Например,​ вывод команды multipath может выглядеть следующим образом:​ 
 +<​code>​3600d0230000000000e13955cc3757800 dm-1 WINSYS,​SF2372 
 +size=269G ​features='​0'​ hwhandler='​0'​ wp=rw 
 +|-+- policy='​round-robin 0' prio=status=active 
 +| `- 6:0:0:0 sdb 8:16  active ready  running 
 +`-+- policy='​round-robin 0' prio=1 status=enabled 
 +  `- 7:0:0:0 sdf 8:80  active ready  running</code>
  
-When you set the no_path_retry parameterremove the features "1 queue_if_no_path"​ option from the /​etc/​multipath.conf file as well. If, however, you are using a multipathed device for which the features "1 queue_if_no_path"​ option is set as a compiled in default, as it is for many SAN devices, you must add features "​0"​ to override this default. You can do this by copying the existing devices sectionand just that section ​(not the entire file), from /​usr/​share/​doc/​multipath-tools/​examples/​multipath.conf.annotated.gz into /​etc/​multipath.conf ​and editing to suit your needs.+Если маршрут поднят и готов к вводу-выводустатус маршрута **ready**(готов) или **ghost**(скрытый)Если маршрут погашенстатус **faulty**(дефектныйили **shaky**(шаткий). Статус маршрута обновляется периодически сервисом multipathd на основе интервала опросовопределенном в файле ​/​etc/​multipath.conf.
  
-If you need to use the features "1 queue_if_no_path"​ option and you experience the issue noted hereuse the dmsetup command to edit the policy at runtime for a particular LUN (that is, for which all the paths are unavailable)For exampleif you want to change the policy on the multipath device mpathc from "​queue_if_no_path"​ to "​fail_if_no_path"​execute the following command.+Статус dm аналогичен статусу маршрутано только с точки зрения ядраСтатус dm имеет два состояния:​ **failed**который аналогичен **faulty**и **active**, который определяет все остальные состояния. Изредка статусы маршрута и dm бывают временно несогласованны.
  
-# dmsetup message mpathc 0 "​fail_if_no_path"​+Возможные значения **online_status** - **running** и **offline**. Статус **offline** означает,​ что SCSI устройство отключено.
  
-You must specify the mpathN alias rather than the path+<​note>​Когда множественное устройство создается или изменяется,​ статус группы маршрутов,​ имя dm устройства,​ права на запись и dm статус неизвестны. Также значения бывают не всегда корректны.</​note>​
  
-====Multipath Command Output====+====Получение информации через команду multipath====
  
-When you createmodifyor list a multipath deviceyou get a printout of the current device setupThe format is as follows. For each multipath device:+Вы можете использовать опции **-l** и **-ll** команды **multipath** для показа текущей конфигурации multipath. Опция **-l** показывает топологию multipathсобранную из информации в sysfs и маршрутизаторе устройств. Опция **-ll** показывает ту же информациючто и опция **-l**в дополнение ко всем иным компонентам системы
  
-   ​action_if_any:​ alias (wwid_if_different_from_alias) dm_device_name_if_known vendor,product +При выводе конфигурации multipath существуют три уровня детализациикоторые вы можете задавать опцией **-v** команды **multipath**. Указание **-v0** приводит к отсутствию вывода. Указание **-v1** выводит только имена созданных или обновленных множественных устройств,​ которые вы можете затем использовать в других утилитах,​ таких как kpartx. Указание **-v2** печатает все обнаруженные пути, множественные маршруты и маршрутизаторы устройств.
-   ​size=size features='​features'​ hwhandler='​hardware_handler'​ wp=write_permission_if_known+
  
-For each path group: +<​note>​Уровень детализации multipath по умолчанию 2 и может быть изменен глобально заданием [[wiki:руководство_по_ubuntu_server:множественное_связывание_устройств:configuration|атрибутом verbosity]] в секции **defaults** файла ​multipath.conf.</​note>​
- +
-  -+- policy='​scheduling_policy'​ prio=prio_if_known +
-  status=path_group_status_if_known +
- +
-For each path: +
- +
-   `- host:channel:​id:​lun devnode major:minor dm_status_if_known path_status +
-  online_status +
- +
-For example, the output of a multipath ​command might appear as follows:+
  
 +Следующий пример показывает пример вывода команды **multipath -l**:
 +<​code>#​ multipath -l
   3600d0230000000000e13955cc3757800 dm-1 WINSYS,​SF2372   3600d0230000000000e13955cc3757800 dm-1 WINSYS,​SF2372
   size=269G features='​0'​ hwhandler='​0'​ wp=rw   size=269G features='​0'​ hwhandler='​0'​ wp=rw
Строка 92: Строка 95:
   | `- 6:0:0:0 sdb 8:16  active ready  running   | `- 6:0:0:0 sdb 8:16  active ready  running
   `-+- policy='​round-robin 0' prio=1 status=enabled   `-+- policy='​round-robin 0' prio=1 status=enabled
-    `- 7:0:0:0 sdf 8:80  active ready  running+    `- 7:0:0:0 sdf 8:80  active ready  running</​code>​
  
-If the path is up and ready for I/O, the status of the path is ready or ghost. If the path is down, the status is faulty or shaky. The path status is updated periodically by the multipathd daemon based on the polling interval defined in the /etc/multipath.conf file. +А данный пример показывает вывод команды **multipath -ll**
- +<​code>​# multipath -ll
-The dm status is similar to the path status, but from the kernel'​s point of view. The dm status has two states: failed, which is analogous to faulty, and active which covers all other path states. Occasionally,​ the path state and the dm state of a device will temporarily not agree. +
- +
-The possible values for online_status are running and offline. A status of offline means that the SCSI device has been disabled. +
- +
-When a multipath device is being created or modified , the path group status, the dm device name, the write permissions,​ and the dm status are not known. Also, the features are not always correct +
- +
-====Multipath Queries with multipath Command==== +
- +
-You can use the -l and -ll options of the multipath command to display the current multipath configuration. The -l option displays multipath topology gathered from information in sysfs and the device mapper. The -ll option displays the information the -l displays in addition to all other available components of the system. +
- +
-When displaying the multipath configuration,​ there are three verbosity levels you can specify with the -v option of the multipath command. Specifying -v0 yields no output. Specifying -v1 outputs the created or updated multipath names only, which you can then feed to other tools such as kpartx. Specifying -v2 prints all detected paths, multipaths, and device maps. +
- +
-The default verbosity level of multipath is 2 and can be globally modified by defining the verbosity attribute in the defaults section of multipath.conf. +
- +
-The following example shows the output of a multipath -l command. +
- +
-# multipath -l +
-  3600d0230000000000e13955cc3757800 dm-1 WINSYS,​SF2372 +
-  size=269G features='​0'​ hwhandler='​0'​ wp=rw +
-  |-+- policy='​round-robin 0' prio=1 status=active +
-  | `- 6:0:0:0 sdb 8:16  active ready  running +
-  `-+- policy='​round-robin 0' prio=1 status=enabled +
-    `- 7:0:0:0 sdf 8:80  active ready  running +
- +
-The following example shows the output of a multipath -ll command. +
- +
-# multipath -ll+
   3600d0230000000000e13955cc3757801 dm-10 WINSYS,​SF2372   3600d0230000000000e13955cc3757801 dm-10 WINSYS,​SF2372
   size=269G features='​0'​ hwhandler='​0'​ wp=rw   size=269G features='​0'​ hwhandler='​0'​ wp=rw
Строка 133: Строка 109:
     `-+- policy='​round-robin 0' prio=1 status=active     `-+- policy='​round-robin 0' prio=1 status=active
       |- 19:0:0:3 sde 8:64  active ready  running       |- 19:0:0:3 sde 8:64  active ready  running
-        `- 18:0:0:3 sdj 8:144 active ready  running+        `- 18:0:0:3 sdj 8:144 active ready  running</​code>​ 
 +====Опции команды multipath====
  
-====Multipath Command Options====+Таблица [[#​полезные_опции_команды_multipath|Полезные опции команды multipath]] описывает некоторые опции команды multipath, которые вы можете посчитать полезными.
  
-Table Useful ​multipath ​Command Options describes some options of the multipath command that you might find useful. +==Полезные опции команды ​multipath==
-Useful multipath Command Options +
-Option Description +
--l Display the current multipath configuration gathered from sysfs and the device mapper. +
--ll Display the current multipath configuration gathered from sysfs, the device mapper, and all other available components on the system. +
--f device Remove the named multipath device. +
--F Remove all unused multipath devices.+
  
-====Determining Device Mapper Entries with dmsetup Command====+^ Опция ​ ^ Описание ​ ^ 
 +| **-l** ​ | Показывает текущую настройку multipath собранную из sysfs и маршрутизатора устройств. ​ | 
 +| **-ll** ​ | Показывает текущую конфигурацию multipath собранную из sysfs, маршрутизатора устройств и всех иных доступных компонентов в системе. ​ | 
 +| **-f device** ​ | Удалить именованное множественное устройство. ​ | 
 +| **-F** ​ | Удалить все неиспользуемые множественные устройства. ​ |
  
-You can use the dmsetup ​command to find out which device mapper entries match the multipathed devices.+====Определение меток маршрутизации устройств командой ​dmsetup====
  
-The following command displays all the device mapper devices and their major and minor numbers. The minor numbers determine the name of the dm device. For example, a minor number of 3 corresponds to the multipathed device /dev/dm-3.+Вы можете использовать команду **dmsetup** для поиска какие метки маршрутизаторов устройств соответствуют каким множественным устройствам.
  
-# dmsetup ls+Следующая команда показывает все маршрутизаторы устройств и их старшие и младшие номера. Младшие номера определяют имя dm устройства. Например,​ младший номер **3** соответствует множественному устройству **/​dev/​dm-3**. 
 +<​code>​# dmsetup ls
 mpathd ​ (253, 4) mpathd ​ (253, 4)
 mpathep1 ​       (253, 12) mpathep1 ​       (253, 12)
Строка 166: Строка 142:
 mpathe ​ (253, 6) mpathe ​ (253, 6)
 mpathbp1 ​       (253, 10) mpathbp1 ​       (253, 10)
-mpathd ​ (253, 5)+mpathd ​ (253, 5)</​code>​
   ​   ​
  
-====Troubleshooting with the multipathd ​interactive console====+====Решение проблем с помощью интерактивной консоли ​multipathd====
  
-The multipathd -k command is an interactive interface to the multipathd ​daemonEntering this command brings up an interactive ​multipath ​consoleAfter entering this command, you can enter help to get a list of available commands, you can enter a interactive commandor you can enter CTRL-D to quit.+Команда **multipathd -k** это интерактивный интерфейс к сервису **multipathd**Ввод этой команды поднимает интерактивную консоль ​multipath. ​После ввода этой команды вы можете ввести **help** для получения списка доступных командинтерактивную команду или нажать **Ctrl-D** для выхода.
  
-The multipathd ​interactive console can be used to troubleshoot problems you may be having with your systemFor examplethe following command sequence displays the multipath ​configurationincluding the defaultsbefore exiting the consoleSee the IBM article "​Tricks with Multipathd" for more examples+Интерактивная консоль ​multipathd ​может быть использована для решения проблем,​ которые могут возникнуть на вашей системеНапримерследующая последовательность команд показывает конфигурацию ​multipath, ​включая умолчаниядо выхода из консолиСмотрите статью ​IBM [[http://​www-01.ibm.com/​support/​docview.wss?​uid=isg3T1011985|Трюки с Multipathd]] для дополнительных примеров
- +<​code>​# multipathd -k
-# multipathd -k+
   > > show config   > > show config
-  > > CTRL-D+  > > CTRL-D</​code>​
  
-The following command sequence ensures that multipath ​has picked up any changes to the multipath.conf+Следующая последовательность команд подтверждает что ​multipath ​подхватила все изменения в multipath.conf. 
- +<​code>​# multipathd -k
-# multipathd -k+
 > > reconfigure > > reconfigure
-> > CTRL-D+> > CTRL-D</​code>​
  
-Use the following command sequence to ensure that the path checker is working properly+Используйте следующую последовательность команд,​ чтобы убедиться что контроль маршрутов работает правильно
- +<​code>​# multipathd -k
-# multipathd -k+
 > > show paths > > show paths
-> > CTRL-D +> > CTRL-D</​code>​
- +
-Commands can also be streamed into multipathd using stdin like so:+
  
-# echo 'show config'​ | multipathd -k+Команды могут также передаваться через поток stdin в multipathd как показано ниже: 
 +<​code>​# echo 'show config'​ | multipathd -k</​code>​
  
 ---- ----