#linux #amazon-web-services #amazon-ec2 #boto3
#linux #amazon-веб-сервисы #amazon-ec2 #boto3
Вопрос:
Я хочу выяснить, можно ли проверить через boto3, смонтирован ли том EBS, подключенный к экземпляру EC2. Причина этого в том, что я считаю, что в ряде экземпляров тома были размонтированы, но администратор забыл отсоединить том, поэтому тома выставлены, но мы его не используем.
Я ничего не вижу в документации boto3, единственное, что я могу придумать, это попытаться отсоединить том и посмотреть, нет ли в нем ошибок, что беспокоило бы меня как метод в случае, если том отсоединен от экземпляра, когда он смонтирован и используется, это может вызвать серьезные проблемы.
Единственное, что я могу придумать, это использовать salt-key (который мы используем для управления конфигурацией), чтобы распечатать список экземпляров, затем запустить «df -h» на сервере, удалить LVM и вернуть список смонтированных томов, которые я мог быперекрестная ссылка со списком томов, которые экземпляр подключил из boto3. Это кажется более безопасным способом сделать это, но может быть болезненным, и его можно запустить только на нашем главном сервере соли.
Комментарии:
1. Вы правы, подключение выделенного хранилища EBS — это работа ОС. Boto3 не имеет дело с уровнем ОС.
2.
lsblk
может быть более простым / простым в использовании, чемdf
.
Ответ №1:
Я не уверен, что вы можете полностью решить эту проблему, пытаясь размонтировать свой том.
Важно отметить, что ваше устройство тома и смонтированное устройство могут отличаться
В зависимости от драйвера блочного устройства ядра, устройство может быть подключено с именем, отличным от указанного вами. Например, если вы укажете имя устройства /dev/sdh, ядро может переименовать ваше устройство в /dev/xvdh или /dev/hdh; в большинстве случаев конечная буква остается прежней. В некоторых версиях Red Hat Enterprise Linux (и его вариантах, таких как CentOS) может измениться даже конечная буква (где /dev/sda может стать /dev/xvde). В этих случаях каждая конечная буква имени устройства увеличивается одинаковое количество раз. Например, /dev/sdb станет /dev/xvdf, а /dev/sdc станет /dev/xvdg . AMI Amazon Linux создают символическую ссылку с именем, которое вы указываете при запуске, которая указывает на путь к переименованному устройству, но другие AMI могут вести себя иначе.
Плохая часть в том, что буква может измениться, и связать 2 не так просто (есть сообщение в блоге о том, как вы можете это сделать)
Если вы удалите эту часть, я бы, вероятно, поступил безопасным образом, но вместо того, чтобы использовать и анализировать результат df -k
, я бы перечислил доступный диск, а также их конечную точку
[root@light ~]# lsblk -o NAME,MOUNTPOINT -r
NAME MOUNTPOINT
xvde /
xvdj
Синтаксический анализ будет немного проще, и для каждого тома, который не смонтирован, вы сможете извлечь их и найти из boto3 или aws CLI
aws ec2 describe-volumes --query
'Volumes[*].Attachments[?Device==`<the device>` amp;amp; InstanceId==`<instance looked up>`].VolumeId'
--output text
Это будет работать очень хорошо, проблема снова
В некоторых версиях Red Hat Enterprise Linux (и его вариантах, таких как CentOS) может измениться даже конечная буква (где /dev/sda может стать /dev/xvde). В этих случаях каждая конечная буква имени устройства увеличивается одинаковое количество раз
Комментарии:
1. Спасибо за ваш вклад, я не думал, что это сработает, но я хотел убедиться, что не пропустил что-то очевидное! Проблема RHEL не должна меня зацепить, мы используем ubuntu AMI, но спасибо, что указали на это
Ответ №2:
У No Boto нет такой функциональности. Boto позволяет взаимодействовать с инфраструктурой AWS, а не с внутренними функциями ОС. https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#volume
Вы можете проверить, подключен ли том, но не смонтирован ли он.
Процесс, о котором вы упомянули, является одним из способов сделать это, но с большим количеством ручного вмешательства. С другой стороны, вы всегда можете использовать python для запуска команды и перечисления всех смонтированных разделов на сервере, получения выходных данных и перекрестной ссылки на него со списком томов EBS, прикрепленных к экземпляру, которые вы можете получить с помощью Boto.
Комментарии:
1. Спасибо за ваш вклад, я не думал, что это сработает, но я хотел убедиться, что не пропустил что-то очевидное!