Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    Устанавливаем фиксированный UUID для всех дисков в виртуальной машине.

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Устанавливаем фиксированный UUID для всех дисков в виртуальной машине., Proxmox Виртуальная Среда
     
    RBretzel
    Guest
    #1
    0
    24.07.2024 16:42:00
    Ну вот, установил я K8s (Kubernetes) с несколькими QEMU дисками в Ubuntu VM. Вся проблема в том, что после перезагрузки VM диски получают другие UUID, чем те, что были во время установки. В итоге K8s больше не запускается. В конфиге (/etc/pve/qemu-server/<VMID>.conf) можно указать только один UUID. Если я правильно понял, этот UUID задается только для загрузочного диска (ubuntu). Есть ли способ задать UUID для всех дисков? Может, есть какой-то параметр, который гарантирует, что всем дискам будет присвоен UUID, который они получили при первом запуске? От любых решений буду рад.
     
     
     
    LnxBil
    Guest
    #2
    0
    25.07.2024 17:20:00
    Насколько я знаю, изменить UUID диска в вашей ВМ из PVE нельзя. UUID, который вы можете установить, — это системный UUID, а не UUID файловой системы.
     
     
     
    RBretzel
    Guest
    #3
    0
    26.07.2024 09:38:00
    Окей, во-первых, спасибо за ответ. Я правильно понимаю, что нет возможности настроить диски SCSI 1-9 (см. скриншот), чтобы они всегда имели одинаковый UUID при загрузке? Мне было бы достаточно, чтобы UUID просто не менялся при загрузке. В файле /etc/pve/qemu-server/<VMID>.conf я могу задать UUID для загрузочного диска (scsi0), и он сохраняется при загрузке. Тогда я отправлю это как запрос на изменение. Можете ли мне кто-нибудь сказать, как и где это можно сделать?
     
     
     
    LnxBil
    Guest
    #4
    0
    26.07.2024 10:57:00
    Я не понимаю, что должно быть UUID для диска. Вы имеете в виду WWN? Не могли бы вы попробовать объяснить/показать, что именно вы имеете в виду, что меняется внутри вашей гостевой системы? Вы можете, конечно, присвоить диску серийный номер, который можно использовать для генерации UUID внутри гостевой системы? Просто добавьте его как ,serial=1234 ( source ) Запросы на добавление функций отправляйте в трекер ошибок.
     
     
     
    fiona
    Guest
    #5
    0
    26.07.2024 11:04:00
    Кстати, WWN можно настроить через CLI, но он не отображается в UI, например, команда: qm set 118 --scsi1 lvmthin:vm-118-disk-0,wwn=0x5566777799999999
     
     
     
    LnxBil
    Guest
    #6
    0
    26.07.2024 11:06:00
    Это даже лучше!
     
     
     
    RBretzel
    Guest
    #7
    0
    26.07.2024 11:24:00
    Спасибо за предложение. Протестирую и сообщу, если это решило мою проблему. С уважением, Райнер.
     
     
     
    silverstone
    Guest
    #8
    0
    08.06.2025 18:01:00
    Можно также установить serial=<max-20-characters> согласно документации (так же, как объяснила @fiona), но для этого потребуется кастомный UDEV Rule в вашей VM. Я немного поиграл с разными типами шин (SATA, IDE, SCSI, VIRTIO, USB) и, кажется, это охватывает большинство случаев (хотя я и не тестировал *столько*):

    ```
    # ********************************************************************************************************************************
    # **ВАЖНО**: Поддержка удаления символических ссылок была добавлена в Systemd PR #26081 (слито 2023-01-17)
    #                 На системах с более старыми пакетами (например, Debian Stable) соответствующие строки могут потребоваться отключить
    # ********************************************************************************************************************************

    # Добавить правило символической ссылки для SCSI устройств
    SUBSYSTEM=="block", ENV{ID_BUS}=="scsi", ENV{DEVTYPE}=="disk", ENV{ID_SCSI_SERIAL}=="?*", SYMLINK+="/dev/disk/by-id/scsi-$env{ID_VENDOR}_$env{ID_MODEL}_$env{ID_SCSI_SERIAL}"

    SUBSYSTEM=="block", ENV{ID_BUS}=="scsi", ENV{DEVTYPE}=="partition", ENV{ID_SCSI_SERIAL}=="?*", ENV{ID_PART_ENTRY_NUMBER}=="?*", SYMLINK+="/dev/disk/by-id/scsi-$env{ID_VENDOR}_$env{ID_MODEL}_$env{ID_SCSI_SERIAL}-part$env{ID_PART_ENTRY_NUMBER}"

    # Удалить правило символической ссылки для SCSI устройств
    SUBSYSTEM=="block", ENV{ID_BUS}=="scsi", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK-="/dev/disk/by-id/scsi-$env{ID_SERIAL}"

    SUBSYSTEM=="block", ENV{ID_BUS}=="scsi", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK-="/dev/disk/by-id/scsi-$env{ID_SERIAL}-part$env{ID_PART_ENTRY_NUMBER}"

    # Добавить правило символической ссылки для USB устройств
    SUBSYSTEM=="block", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="disk", ENV{ID_USB_SERIAL_SHORT}=="?*", SYMLINK+="/dev/disk/by-id/usb-$env{ID_VENDOR}_$env{ID_MODEL}_$env{ID_USB_SERIAL_SHORT}"

    SUBSYSTEM=="block", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="partition", ENV{ID_USB_SERIAL_SHORT}=="?*", ENV{ID_PART_ENTRY_NUMBER}=="?*", SYMLINK+="/dev/disk/by-id/usb-$env{ID_VENDOR}_$env{ID_MODEL}_$env{ID_USB_SERIAL_SHORT}-part$env{ID_PART_ENTRY_NUMBER}"

    # Добавить правило символической ссылки для IDE/ATA устройств
    SUBSYSTEM=="block", ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL_SHORT}=="?*", SYMLINK+="/dev/disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL_SHORT}"

    SUBSYSTEM=="block", ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL_SHORT}=="?*", ENV{ID_PART_ENTRY_NUMBER}=="?*", SYMLINK+="/dev/disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL_SHORT}-part$env{ID_PART_ENTRY_NUMBER}"

    # Добавить правило символической ссылки для SATA устройств
    SUBSYSTEM=="block", ENV{ID_BUS}=="ata", ENV{ID_ATA_SATA}=="1", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL_SHORT}=="?*", SYMLINK+="/dev/disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL_SHORT}"

    SUBSYSTEM=="block", ENV{ID_BUS}=="ata", ENV{ID_ATA_SATA}=="1", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL_SHORT}=="?*", ENV{ID_PART_ENTRY_NUMBER}=="?*", SYMLINK+="/dev/disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL_SHORT}-part$env{ID_PART_ENTRY_NUMBER}"

    # Добавить правило символической ссылки для Virtio устройств
    SUBSYSTEM=="block", ENV{DEVNAME}=="/dev/vd?*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="/dev/disk/by-id/virtio-$env{ID_SERIAL}"

    SUBSYSTEM=="block", ENV{DEVNAME}=="/dev/vd?*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", ENV{ID_PART_ENTRY_NUMBER}=="?*", SYMLINK+="/dev/disk/by-id/virtio-$env{ID_SERIAL}-part$env{ID_PART_ENTRY_NUMBER}"

    Я не чувствовал, что нужно удалять что-то другое, кроме "неправильного" SCSI Serial, который не соответствует тому, что можно установить из CLI. Но, конечно, вы можете настроить это дальше, если столкнетесь с каким-то другим "особым" случаем.

    Несколько полезных замечаний:

    Префиксы для информации udevadm
    [https://docs.oracle.com/en/operating-systems/oracle-linux/8/udev/udev-QueryingUdevandSysfs_prefixes_for_udevadm_information.html](<#0 >)

    Мониторинг загрузки правил (повторная загрузка из другой оболочки)
    udevadm monitor --subsystem-match="scsi"

    Получение свойств устройства
    udevadm info -p 'block/sdb' --query all --tree

    Или даже больше информации
    udevadm info -p 'block/sdb' --query all --tree --root --attribute-walk

    Для использования в скриптах
    udevadm info -p 'block/sdb' --query all --tree --root --attribute-walk --no-pager

    Имитация правил
    udevadm test /dev/sdb

    EDIT 1: Это, конечно, требует, чтобы вы установили серийный номер (и потенциально WWN) из CLI, например:
    ```
    qm set <vmid> --scsiX local-zfs:vm-<vmid>-disk-<diskid>,serial=<max-20-characters>,wwn=<16-hex-digits>
    ```
    Где вы можете сгенерировать 2 параметра со следующими командами:

    ```
    # Генерировать случайный серийный номер
    serial_number=$(uuidgen | sed -E "s|-||g" | cut -c 1-20)
    ```

    И:

    ```
    # Генерировать случайный номер WWN
    wwn_number=$(uuidgen --hex | sed -E "s|-||g" | cut -c 1-16)
    ```

    EDIT 2: Обновлен скрипт для также создания символических ссылок для разделов

    EDIT 3: Обновлен скрипт для проверки, установлен ли раздел, прежде чем пытаться создать символическую ссылку раздела
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры