Так-как я все же решился перенести заметки со старого блога на xWiki сюда, то объединим старые заметки по Proxmox в одну кучу. Часть было написано на этапе внедрения кластера и CEPH, часть просто небольшие заметки на тему украшательства.
Использование логического тома как хранилища для OSD
# ceph auth get client.bootstrap-osd > /var/lib/ceph/bootstrap-osd/ceph.keyring
# ceph-volume lvm create --data pve/ceph
# ceph-volume lvm list
# ceph-volume lvm activate --all
Использование сертификата Let’s encrypt вместо типового (самоподписанного)
Устанавливаем необходимые пакеты
# apt-get install python3-certbot nginx python3-certbot-nginx
Обязательно добавляем DNS-запись для хоста который мы будем использовать
Получаем ssl-сертификат в ручном режиме
# certbot certonly --nginx -d srv-prod-pve-01.interlan.xyz
Добавляем в crontab раз в месяц обновление сертификатов
52 6 1 * * root certbot renew
Устанавливаем полученный сертификат для хоста Proxmox
Скрипт установки сертификата
#!/bin/sh
cat /etc/letsencrypt/live/srv-prod-pve-01.interlan.xyz/fullchain*.pem > /etc/pve/nodes/srv-prod-pve-01/pve-ssl.pem
cat /etc/letsencrypt/live/srv-prod-pve-01.interlan.xyz/privkey*.pem > /etc/pve/nodes/srv-prod-pve-01/pve-ssl.key
service pveproxy restart
exit 0
Аналогично добавляем в crontab обновление сертификатов в проксмоксе после обновления летс-енкриптовых
527 1 * * root /opt/scripts/update-ssl.sh
Теперь можем ходить в web-интерфейс проксмокс без предупреждений, что этот сайт подделка
Ошибка при обновлении без подписки (Enterprise repository needs valid subscription)
Описание проблемы
В типовой установке без активированной коммерческих подписок невозможно обновить Proxmox, так как доступ к репозитарию заблокирован. Это приводит к ежедневным ошибкам, которые несколько подбешивают (мне для тестов коммерческий саппорт не нужен).
В консоли это соответственно выглядит следующим образом.
# apt-get update
Hit:1 http://security.debian.org bullseye-security InRelease
Hit:2 http://ftp.ru.debian.org/debian bullseye InRelease
Get:3 http://ftp.ru.debian.org/debian bullseye-updates InRelease [44,1 kB]
Err:4 https://enterprise.proxmox.com/debian/pve bullseye InRelease
401 Unauthorized [IP: 212.224.123.70 443]
Reading package lists... Done
E: Failed to fetch https://enterprise.proxmox.com/debian/pve/dists/bullseye/InRelease 401 Unauthorized [IP: 212.224.123.70 443]
E: The repository 'https://enterprise.proxmox.com/debian/pve bullseye InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Решение проблемы
Удаляем коммерческий репозитарий:
# rm /etc/apt/sources.list.d/pve-enterprise.list
Приводим список репозитариев в файле /etc/apt/sources.list к виду:
deb http://ftp.debian.org/debian bullseye main contrib
deb http://ftp.debian.org/debian bullseye-updates main contrib
# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
# security updates
deb http://security.debian.org/debian-security bullseye-security main contrib
Обновляем репозитарии и систему:
# apt-get update
# apt-get upgrade
Разблокировка виртуальной машины (TASK ERROR: VM is locked (clone))
В консоли хоста выполните команду:
# qm unlock 107
Где 107 в моем случае это идентификатор заблокированной машины.
Сообщение “A newer version was installed but old version still running” в CEPH
Перезагружать узел целиком, это так-себе идея и вам необходимо перезапустить только необходимые сервисы на проблемных узлах которые вам подсказывает графический интерфейс.
Первым делом запрашиваем названия сервисов на проблемных узлах.
# systemctl | grep ceph-
...
ceph-mds@sms-pve-02.service loaded active running Ceph metadata server daemon
ceph-mgr@sms-pve-02.service loaded active running Ceph cluster manager daemon
ceph-mon@sms-pve-02.service loaded active running Ceph cluster monitor daemon
...
Перезапускаем сервисы (им необходимо отправить именно restart)
# systemctl restart ceph-mds@sms-pve-02.service
# systemctl restart ceph-mgr@sms-pve-02.service
# systemctl restart ceph-mon@sms-pve-02.service
Проверяем, что все позеленело.
Удаление хранилища local-lvm и создание раздела для ceph
Удаление раздела в GUI
- Datacenter > Storage.
- Выбираем local-lvm.
- Нажимаем удалить и подтверждаем.
Удаляем том pve-data:
# lvremove /dev/mapper/pve-data
Устранение дублирования IP-адресов при клонировании виртуальной машины
Удаляем текущий уникальный идентификатор виртуальной машины
# rm /etc/machine-id
Генерируем новый уникальный идентификатор
# systemd-machine-id-setup
Устранение ошибки NO_PUBKEY 0D9A1950E2EF0603
# sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0D9A1950E2EF0603
# apt-get update
Устранение ошибки “unable to find VM” при резервном копировании
Правим в консоли файл /etc/pve/jobs.cfg:
vzdump: backup-36d495b0-326f
schedule 21:40
compress gzip
enabled 1
mailnotification always
mailto tech@smsfinance.ru
mode snapshot
prune-backups keep-last=3,keep-monthly=1
storage backup-nfs
vmid 104,111,113,116,114,102,110
Изменения через corosync автоматически распространяются на все узлы кластера.