Перевоз VDisk'ов
Иногда бывает нужно освободить блочное устройство для замены оборудования. Или один из VDisk'ов интенсивно используется и влияет на производительность остальных VDisk'ов, находящихся на том же PDisk'е. В этих случаях необходимо выполнить перевоз VDisk'ов.
Перевезти один из VDisk'ов с блочного устройства
Получите список идентификаторов VDisk'ов с помощью утилиты YDB DSTool:
ydb-dstool -e <bs_endpoint> vdisk list --format tsv --columns VDiskId --no-header
Чтобы перевезти VDisk'и с блочного устройства, выполните на узле следующие команды:
ydb-dstool -e <bs_endpoint> vdisk evict --vdisk-ids VDISK_ID1 ... VDISK_IDN
ydbd admin bs config invoke --proto 'Command { ReassignGroupDisk { GroupId: <ID группы хранения> GroupGeneration: <Поколение группы хранения> FailRealmIdx: <FailRealm> FailDomainIdx: <FailDomain> VDiskIdx: <Номер слота> } }'
VDISK_ID1 ... VDISK_IDN
— список идентификаторов VDisk'ов, вида[GroupId:GroupGeneration:FailRealmIdx:FailDomainIdx:VDiskIdx]
. Идентификаторы разделяются пробелами.GroupId
— ID группы хранения.GroupGeneration
— поколение группы хранения.FailRealmIdx
— номер fail realm.FailDomainIdx
— номер fail domain.VDiskIdx
— номер слота.
Перевезти VDisk'и со сломанного/отсутствующего устройства
В случае, если SelfHeal выключен или не перевозит VDisk'и автоматически, перевоз нужно выполнить вручную:
-
Откройте мониторинг и убедитесь, что VDisk в нерабочем состоянии.
-
Получите
[NodeId:PDiskId]
нужного диска с помощью утилиты YDB DSTool:ydb-dstool -e <bs_endpoint> vdisk list | fgrep VDISK_ID
-
Перевезите VDisk:
ydb-dstool -e <bs_endpoint> pdisk set --status BROKEN --pdisk-ids "[NodeId:PDiskId]"
Вернуть PDisk после развоза
Чтобы вернуть PDisk после развоза:
-
Откройте мониторинг и убедитесь, что PDisk в рабочем состоянии.
-
Получите
[NodeId:PDiskId]
нужного диска с помощью утилиты YDB DSTool:ydb-dstool -e <bs_endpoint> pdisk list
-
Верните PDisk:
ydb-dstool -e <bs_endpoint> pdisk set --status ACTIVE --pdisk-ids "[NodeId:PDiskId]"