PowerFlex: A adição de um dispositivo SDS falha com "Um dispositivo com o nome fornecido já existe no SDS"
Summary: A adição de um dispositivo SDS falha com "Um dispositivo com o nome fornecido já existe no SDS"
Symptoms
Ao adicionar um dispositivo a um SDS por meio de scli, esse erro será exibido:

# 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
Normalmente, isso pode ser resolvido usando "--update_device_original_path." No entanto, tentar corrigir o problema de caminhos do dispositivo Um dispositivo com o nome especificado já existe no SDS agora termina com este erro:
# 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") você não verá nenhuma duplicação nos caminhos do dispositivo.
Impacto
Não é possível adicionar novos dispositivos ao SDS para expandir a capacidade de armazenamento no cluster.
Cause
Como mencionado anteriormente, quando vemos esse erro, a primeira coisa a tentar é atualizar o caminho original do dispositivo que existe atualmente no SDS. Se isso falhar, é porque os dispositivos que o SDS está controlando nesse host tiveram um erro que foi apagado de uma vez, seja na interface do usuário ou na linha de comando, mas o MDM não está permitindo que os erros do dispositivo sejam apagados mais, pois ele não está mais em um estado de "erro". O "erro não tratado" é um problema do ScaleIO que é resolvido em uma revisão posterior do código.
Resolution
Para contornar o problema, a maneira mais rápida é adicionar um dispositivo temporário que preencha a lacuna na lista de dispositivos. Por exemplo:
# 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
Observe o caminho atual que cada dispositivo está usando. O último dispositivo é /dev/sdi. Quando um novo dispositivo é adicionado, ele vem como /dev/sdj. Já existe um /dev/sdj listado em original-path. Quando um novo dispositivo SDS é adicionado, os caminhos atual e original devem corresponder. O "--update_device_original_path" deve limpar isso e corresponder aos caminhos atuais e originais.
Nesse caso, com o host sendo um SVM no ESXi, adicionamos um pequeno VMDK (8 GB, thin) ao SVM, que será exibido como /dev/sdj. Agora, quando o novo dispositivo SDS real é adicionado, ele vem como /dev/sdk, que é livre no caminho atual e original, e terá sucesso.
Additional Information
Versões afetadas
v2.0.0.3 e superior
Corrigido na versão
v3.0