GNU/Linux >> Tutoriales Linux >  >> Cent OS

Comprender las rutas múltiples de Linux (dm-multipath)

¿Qué son las rutas múltiples?

Las rutas múltiples permiten la combinación de varias conexiones físicas entre un servidor y una matriz de almacenamiento en un dispositivo virtual. Esto se puede hacer para proporcionar una conexión más resistente a su almacenamiento (una ruta descendente no obstaculizará la conectividad) o para agregar ancho de banda de almacenamiento para mejorar el rendimiento.

Como ejemplo, el servidor del siguiente diagrama tiene dos HBA, cada uno conectado a un conmutador Fibre Channel independiente, que a su vez está conectado a controladores independientes en la matriz de almacenamiento.

Red Hat Enterprise Linux 7 admite rutas múltiples mediante dm-multipath subsistema. Esto utiliza el sistema de asignación de dispositivos del kernel para generar dispositivos virtuales, administrados por el demonio multipathd y la herramienta de línea de comandos multipath.

Los binarios, demonios y módulos de kernel necesarios están disponibles en el paquete device-mappermultipath. Una vez que se instala, configura e inicia device-mapper-multipath, los nodos de dispositivos para dispositivos con rutas múltiples se crearán en dos ubicaciones diferentes.

Para fines administrativos, los dispositivos de rutas múltiples se crean en /dev/mapper . Se pueden llamar mpathN[pM] si se eligen nombres fáciles de usar, o pueden tener el nombre de World Wide ID (WWID) del dispositivo de almacenamiento. Un administrador también puede establecer nombres personalizados para dispositivos con rutas múltiples. Estos nombres personalizados se establecen utilizando la opción de alias en la sección de rutas múltiples del archivo de configuración de rutas múltiples.

Los dispositivos de rutas múltiples también se crean en /dev en forma de /dev/dm-N para que coincida con los creados en /dev/mapper. Estos dispositivos son estrictamente para uso interno del sistema y, por lo tanto, nunca deben usarse directamente para fines administrativos.

Nota :las rutas múltiples brindan protección contra la caída de una ruta de acceso al almacenamiento. Si el almacenamiento en sí deja de estar disponible, se perderá el acceso al almacenamiento.

Para crear un dispositivo de múltiples rutas, las diferentes rutas se combinarán en grupos, según la configuración en /etc/multipath.conf archivo de configuración. Por lo general, solo un grupo estará activo a la vez, pero un grupo puede constar de varias rutas. Cuando un grupo falla, el daemon de rutas múltiples cambiará el tráfico de almacenamiento a un grupo diferente.

Configuración de rutas múltiples

Para configurar rutas múltiples, primero asegúrese de que esté instalado el paquete device-mapper-multipath.

# yum -y install device-mapper-multipath

Una vez que se instala el paquete device-mapper-multipath, se debe crear un archivo de configuración para el daemon multipath, /etc/multipath.conf. La forma más fácil de crear este archivo es usar mpathconf utilidad.

Si ya existe un archivo llamado /etc/multipath.conf, el comando mpathconf editará ese archivo. Si no existe dicho archivo, mpathconf copiará la configuración predeterminada de /usr/share/doc/device-mapper-multipath-*/multipath.conf . Si ese archivo no existe, mpathconf creará un nuevo archivo de configuración desde cero.

Para crear una configuración predeterminada y luego iniciar y habilitar el demonio multipathd, use el siguiente comando:

# mpathconf --enable --with_multipathd y --with_chkconfig y
Nota :en el archivo de configuración predeterminado creado por mpathconf, los nombres descriptivos se habilitan con la opción user_friendly_names. Los nombres fáciles de usar darán como resultado que los dispositivos con rutas múltiples se denominen mpathN. Si bien esto puede ser útil si solo hay un dispositivo de rutas múltiples, puede volverse confuso cuando hay varios dispositivos de rutas múltiples. Para deshabilitar nombres amigables para el usuario, use el –user_friendly_names n opción para mpathconf. Esto dará como resultado que los dispositivos con rutas múltiples reciban el nombre de sus WWID.

Si desea ajustar la configuración de rutas múltiples antes de iniciar el demonio multipathd, use el comando mpathconf con solo la opción –enable:

# mpathconf --enable

Después de editar el archivo de configuración, habilite e inicie el demonio multipathd normalmente con el comando systemctl.

El archivo de configuración multipath.conf

El archivo de configuración multipath.conf consta de cinco secciones:

sección multipath.conf Descripción
lista negra'{} Esta sección define qué dispositivos se deben excluir del descubrimiento de topología de rutas múltiples.
excepciones_de la lista negra {} Esta sección define qué dispositivos deben incluirse en el descubrimiento de topología de rutas múltiples, a pesar de estar incluidos en la sección de la lista negra.
predeterminado {} Esta sección define la configuración predeterminada que se utilizará para todas las rutas múltiples, a menos que se anule explícitamente en la sección de dispositivos {} o rutas múltiples {}.
dispositivos {} Esta sección contiene anulaciones para la sección {} de valores predeterminados para tipos específicos de dispositivos, a menos que se anulen desde la sección {} de rutas múltiples. Los dispositivos se identifican en función de su proveedor, producto y palabras clave de revisión (expresiones regulares que coinciden con la información de sysfs).
rutas múltiples {} Esta sección contiene configuraciones para rutas múltiples específicas. Esta sección anula lo que se define en la sección {} y dispositivos {} predeterminados. Las rutas múltiples se identifican en función de sus WWID (obtenidos mediante la función getuid_callout).

Una manera fácil de recordar anulaciones es:múltiples rutas> dispositivos> predeterminados .

Listas negras

Los dispositivos se pueden incluir en la lista negra en el archivo de configuración usando la lista negra {} sección de multipath.conf. Si se incluye en la lista negra con comodines, los dispositivos individuales pueden quedar exentos de la lista negra mediante la sección blacklist_exceptions {}. Los dispositivos se pueden incluir en la lista negra utilizando su nodo de dispositivo o su WWID. El siguiente ejemplo muestra un ejemplo de ambos:

blacklist {
    devnode "^cciss" 
    wwid 1234567890abcde
}

Para determinar el WWID de un dispositivo de disco, use la utilidad scsi_id.

/usr/lib/udev/scsi_id -g -u /dev/sdN 
360014053bd9ea2a35914e39a556051cf

Predeterminados

Los valores predeterminados para todas las rutas múltiples se pueden establecer en valores predeterminados {} sección de multipath.conf. La lista completa de todos los valores predeterminados integrados se puede encontrar en el archivo /usr/share/doc/devicemapper-multipath-*/multipath.conf.defaults. Algunas de las configuraciones más interesantes son:

  • selector_ruta :El algoritmo que determina qué ruta dentro de un grupo de prioridad usar para la siguiente E/S. El valor predeterminado de "round-robin 0 ” distribuye E/S en todas las rutas del grupo. El número de solicitudes que se enviarán usando una ruta antes de cambiar a la siguiente está determinado por rr_min_io_rq ajuste. Las alternativas son “longitud de cola 0 “, que enviará la siguiente solicitud de E/S a la ruta con la cola más corta de solicitudes pendientes, y “tiempo de servicio 0 “, que enviará la siguiente solicitud 1/0 a la ruta que tenga el tiempo de servicio estimado más corto.
  • path_grouping_policy :Esta configuración define cómo se combinan varias rutas en grupos de prioridad. En el valor predeterminado de failover , cada ruta se pondrá en un grupo separado. Por otro lado, con el multibus política, todas las rutas posibles se agregan en un solo grupo. Antes de configurar un dispositivo multirruta para usar la política multibus, asegúrese de que el controlador de almacenamiento admita conexiones activo-activo.
  • comprobador_ruta :Esta configuración determina cómo determinará el daemon multipathd si una ruta está en buen estado. Aparte de las opciones independientes del hardware de directio y leersector0 , hay una serie de verificadores independientes del hardware. Aunque el valor predeterminado para esta opción es directio, generalmente se anula en uno de los dispositivos predeterminados especificados en la sección de dispositivos {}.
  • características :esta opción especifica las funciones de rutas múltiples que se habilitarán. La sintaxis es la forma de num list , donde num representa la cantidad de funciones que se están habilitando y list representa la lista de funciones que se están habilitando. Las dos funciones disponibles son queue_if_no_path y sin_particiones .
  • nombres_de_usuario :esta configuración determina si las rutas múltiples sin un alias definido se denominarán mpathN (cuando se establece en sí), o si se nombrarán según su WWID.
Nota Nota:si la función queue_if_no_path está habilitada con la configuración, las funciones "1 queue_if_no_path" y las rutas fallan, los procesos que emiten E/S se bloquearán hasta que se restablezcan las rutas. Este comportamiento no es deseable en las implementaciones de clúster, ya que un nodo atascado bloqueando en 1/0 a un dispositivo de almacenamiento fallido puede bloquear el acceso del resto del clúster al recurso de almacenamiento. Para evitar esta situación, especifique un valor de falla para el parámetro no-path_retry. Si lo hace, la E/S fallará inmediatamente y volverá a las capas superiores en lugar de bloquearse en 1/0 indefinidamente hasta que se recuperen las rutas.Nota :La sección de valores predeterminados {} comentada en multipath.conf producido por mpathconf no refleja los valores predeterminados incorporados reales del daemon de múltiples rutas.

La sección de dispositivos {}

En los dispositivos {} sección, se pueden anular los valores predeterminados para dispositivos específicos. Dentro de la sección de dispositivos {}, hay subsecciones {} de dispositivos individuales que detallan la configuración para dispositivos específicos. El hardware de almacenamiento más común ya tiene su propia sección definida en los valores predeterminados integrados para el demonio multirruta. Si un hardware no está (todavía) en la lista, se puede agregar manualmente una sección para el hardware. A continuación se muestra una definición de ejemplo para una pieza inexistente de hardware de almacenamiento. El dispositivo en sí se selecciona mediante una combinación de proveedor , producto y revisión .

devices { 
    device { 
        vendor "MegaHyperSuperStorage" 
        product "BAS" 
        revision "513/B" 
        features "1 queue_if_no_path" 
        path_grouping_policy multibus 
        path_checker tur 
    }
}

En los ejemplos anteriores, la línea de características indica que las nuevas solicitudes de E/S se aceptarán y se pondrán en cola incluso cuando no haya rutas disponibles actualmente.

La sección multirutas {}

En las múltiples rutas {} sección, se pueden definir anulaciones para trayectos múltiples específicos. Esto se puede usar para establecer diferentes políticas de agrupación de rutas para una ruta múltiple específica. Uno de los otros usos comunes de la sección {} de rutas múltiples es definir un alias para una ruta múltiple. Cuando se establece un alias. el nombre del nodo del dispositivo en /dev/mapper/ para esta ruta múltiple se basará en el alias, lo que facilita la distinción entre diferentes rutas múltiples.

Como ejemplo, la siguiente configuración establecerá un alias de almacenamiento en clúster para múltiples rutas con un WWID de "1234567890abcdef", así como un path_selector de cola-longitud.

multipaths { 
    multipath { 
        wwid "1234567890abcdef" 
        alias "clusterstorage" 
        path_selector "queue-length 0"
    }
}

Agregar particiones

Para agregar una partición en un dispositivo con rutas múltiples, siga los siguientes pasos:

  1. Cree la partición en el dispositivo con rutas múltiples mediante un editor de particiones, por ejemplo, fdisk /dev/mapper/mpath0 .
  2. Ejecute partprobe comando para actualizar la vista del kernel de la tabla de particiones en todos los dispositivos (incluidos los dispositivos recopilados en una ruta múltiple).
  3. Ejecute el comando, kpartx -a , en el dispositivo de rutas múltiples para crear dispositivos mapeadores de dispositivos para las particiones recién creadas.

Eliminar una ruta múltiple

Después de eliminar todas las rutas para una multirruta, elimine el dispositivo multirruta ejecutando el comando multirruta -f [dispositivo] . Si el daemon multipathd se detuvo y todavía hay nodos de dispositivos para dispositivos multirruta, vacíe todos los dispositivos multirruta ejecutando multipath -F . Esto puede ser útil cuando se prueban diferentes configuraciones y se ven restos de configuraciones antiguas.


Cent OS
  1. Comprender el sistema de archivos Btrfs en Fedora Linux

  2. Linux – ¿Todo es un archivo?

  3. Entendiendo el archivo /etc/xinetd.conf en Linux

  4. Entendiendo el demonio DM-multipath (multipathd)

  5. Entendiendo el archivo /etc/hosts en Linux

Comprender los permisos de archivos de Linux

El archivo de hosts en Linux

Comprender los procesos en Linux

Comprender los permisos de archivos de Linux

Comprender los permisos básicos de archivos y la propiedad en Linux

Comprender el archivo /etc/fstab en Linux