PowerFlex: L'aggiunta di un dispositivo SDS ha esito negativo con il messaggio "A device with the given name already exists in SDS"
Summary: L'aggiunta di un dispositivo SDS ha esito negativo con il messaggio "A device with the given name already exists in SDS"
Symptoms
Durante l'aggiunta di un dispositivo a un SDS tramite scli, verrà visualizzato questo errore:

# 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
In genere, questo problema può essere risolto utilizzando "--update_device_original_path". Tuttavia, il tentativo di risolvere il problema dei percorsi dei dispositivi Un dispositivo con il nome specificato già esistente nell SDS termina con questo errore:
# 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"), non si noterà alcun duplicato nei percorsi del dispositivo.
Impatto
Impossibile aggiungere nuovi dispositivi all SDS per espandere la capacità di storage nel cluster.
Cause
Come accennato in precedenza, quando viene visualizzato questo errore, la prima cosa da provare è aggiornare il percorso originale del dispositivo attualmente esistente nell SDS. Se l'operazione non riesce, è perché i dispositivi controllati dall SDS in questo host hanno avuto un errore che è stato cancellato, nell'interfaccia utente o dalla riga di comando, ma l MDM non consente di cancellare ulteriormente gli errori del dispositivo, in quanto non è più in uno stato "errato". L'"errore non gestito" è un problema di ScaleIO che viene risolto in una successiva revisione del codice.
Resolution
Per risolvere il problema, il modo più rapido consiste nell'aggiungere un dispositivo temporaneo che colmi lo spazio vuoto nell'elenco dei dispositivi. Ad esempio:
# 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
Annotare il percorso corrente utilizzato da ciascun dispositivo. L'ultimo dispositivo è /dev/sdi. Quando viene aggiunto un nuovo dispositivo, viene fornito come /dev/sdj. C'è già un /dev/sdj elencato in original-path. Quando viene aggiunto un nuovo dispositivo SDS, i percorsi correnti e originali devono corrispondere. Il "--update_device_original_path" dovrebbe cancellare questo comando e abbinare i percorsi correnti e originali.
In questo caso, con l'host che è una SVM su ESXi, aggiungiamo un VMDK di piccole dimensioni (8 GB, thin) alla SVM, che verrà fornito come /dev/sdj. Ora, quando viene aggiunto il nuovo dispositivo SDS reale, si presenta come /dev/sdk, che è gratuito sia sul percorso attuale che su quello originale, e avrà successo.
Additional Information
Versioni interessate
v2.0.0.3 e versioni successive
Risolto nella versione
v3.0