PowerFlex. Сбой при добавлении устройства SDS с сообщением «Устройство с заданным именем уже существует в SDS»
Summary: Сбой при добавлении устройства SDS с сообщением «Устройство с заданным именем уже существует в SDS»
Symptoms
При добавлении устройства в SDS с помощью scli, эта ошибка будет отображена:

# 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
Как правило, эту проблему можно решить с помощью команды «--update_device_original_path». Однако попытка устранить проблему с путями к устройствам Устройство с заданным именем уже существует в SDS теперь заканчивается следующей ошибкой:
# 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") вы не увидите дублирования в путях устройства.
Воздействие
Невозможно добавить новые устройства в SDS для увеличения емкости хранилища в кластере.
Cause
Как упоминалось ранее, при появлении этой ошибки первое, что нужно попробовать, — обновить исходный путь устройства, который в настоящее время существует в SDS. Если это не удается, это связано с тем, что на устройствах, которыми управляет SDS на этом хосте, в свое время произошла ошибка, которая была удалена в пользовательском интерфейсе или командной строке, но MDM не позволяет удалять ошибки устройства, так как устройство больше не находится в состоянии «ошибка». «Необработанная ошибка» — это проблема ScaleIO, которая устраняется в более поздней версии кода.
Resolution
Чтобы обойти эту проблему, самый быстрый способ — добавить временное устройство, которое заполнит пробел в списке устройств. Пример.
# 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
Обратите внимание на текущий путь, используемый каждым устройством. Последнее устройство — /dev/sdi. При добавлении нового устройства оно отображается как /dev/sdj. Уже есть /dev/sdj указан в original-path. При добавлении нового устройства SDS текущий и исходный пути должны совпадать. Метод «--update_device_original_path" должна прояснить это и сопоставить текущий и исходный пути.
В этом случае, если хост является SVM на ESXi, мы добавляем в SVM небольшой (8 Гбайт, тонкий) VMDK, который будет отображаться как /dev/sdj. Теперь, когда новое реальное устройство SDS добавлено, оно отображается как /dev/sdk, который свободен как на текущем, так и на исходном пути, и добьется успеха.
Additional Information
Затронутые версии
v2.0.0.3 и выше
Исправлено в версии
Версия 3.0