PowerFlex: La adición de un dispositivo SDS falla con el mensaje "A device con el nombre dado ya existe en el SDS"
Summary: La adición de un dispositivo SDS falla con el mensaje "A device con el nombre dado ya existe en el SDS"
Symptoms
Al agregar un dispositivo a un SDS a través de scli, se mostrará este error:

# scli --add_sds_device --sds_name sds-01 --device_path /dev/sdc --storage_pool pool1
Error: MDM failed command. Status: A device with the given name already exists in the SDS
Por lo general, esto se puede resolver mediante "--update_device_original_path”. Sin embargo, el intento de corregir el problema de las rutas de dispositivo Un dispositivo con el nombre dado ya existe en el SDS ahora finaliza con este error:
# scli --update_device_original_path --sds_id be84190600000001 --device_id cd82454400010008
Error: MDM failed command. Status: Device has an unhandled error that cannot yet be cleared
lsblk") no verá ninguna duplicación en las rutas del dispositivo.
Impacto
No se pueden agregar nuevos dispositivos al SDS para expandir la capacidad de almacenamiento en el clúster.
Cause
Como se mencionó anteriormente, cuando vemos este error, lo primero que debemos intentar es actualizar la ruta original del dispositivo que existe actualmente en el SDS. Si esto falla, se debe a que los dispositivos que el SDS controla en este host tuvieron un error en un momento que se borró, ya sea en la interfaz del usuario o en la línea de comandos, pero el MDM no permite que los errores del dispositivo se borren más, ya que ya no está en un estado de "error". El "error no controlado" es un problema de ScaleIO que se resuelve en una revisión posterior del código.
Resolution
Para solucionar el problema, la forma más rápida es agregar un dispositivo temporal que llene el vacío en la lista de dispositivos. Por ejemplo:
# scli --query_sds --sds_id be84190600000001 |grep ID: |awk '{print $4,$5,$6,$7}'
Path: /dev/sdb Original-path: /dev/sdb
Path: /dev/sdc Original-path: /dev/sdc
Path: /dev/sdd Original-path: /dev/sdd
Path: /dev/sde Original-path: /dev/sde
Path: /dev/sdf Original-path: /dev/sdf
Path: /dev/sdg Original-path: /dev/sdh
Path: /dev/sdh Original-path: /dev/sdi
Path: /dev/sdi Original-path: /dev/sdj
# lsblk
NAME MAJ:MIN RM SIZE RO MOUNTPOINT
sdb 8:16 0 930.4G 0
sdc 8:32 0 930.4G 0
sdd 8:48 0 930.4G 0
sde 8:64 0 930.4G 0
sdf 8:80 0 930.4G 0
sdg 8:96 0 930.4G 0
sda 8:0 0 8G 0
ââsda1 8:1 0 1011M 0 [SWAP]
ââsda2 8:2 0 7G 0 /
sdi 8:128 0 930.4G 0
sdh 8:112 0 930.4G 0
fd0 2:0 1 4K 0
sr0 11:0 1 1024M 0
Anote la ruta actual que utiliza cada dispositivo. El último dispositivo es /dev/sdi. Cuando se agrega un nuevo dispositivo, aparece como /dev/sdj. Ya hay un /dev/sdj Aparece en original-path. Cuando se agrega un nuevo dispositivo SDS, las rutas actuales y originales deben coincidir. El "--update_device_original_path" se supone que borra esto y hace coincidir las rutas actuales y originales.
En este caso, dado que el host es una SVM en ESXi, agregamos un VMDK pequeño (8 GB, delgado) a la SVM, que aparecerá como /dev/sdj. Ahora, cuando se agrega el nuevo dispositivo SDS real, viene como /dev/sdk, que es gratuito tanto en la ruta actual como en la original, y tendrá éxito.
Additional Information
Versiones afectadas
v2.0.0.3 y versiones posteriores
Solucionado en la versión
Versión 3.0