Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    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 Виртуальная Среда
    virtiofs — виртуальная машина может запуститься, даже если хранилище (Ceph) находится не в идеальном состоянии [точка монтирования virtioFS в VM пуста].

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    virtiofs — виртуальная машина может запуститься, даже если хранилище (Ceph) находится не в идеальном состоянии [точка монтирования virtioFS в VM пуста]., Proxmox Виртуальная Среда
     
    scyto
    Guest
    #1
    0
    20.04.2025 02:54:00
    Я тестирую virtioFS. У меня есть хранилище cephFS на моих нодах Proxmox, доступное по адресу /etc/pve/docker-cephFS. Оно содержит только данные, используемые для bind-монтирования для Docker внутри виртуальных машин. Оно передается виртуальной машине как устройство virtiofs. Я случайно накосячил с ceph на 15 минут, пока возился с сетью. Виртуальная машина запустилась до того, как ceph был готов (я полагаю). На ноде Proxmox /etc/pve/docker-cephFS содержит все содержимое, которое я ожидаю в виртуальной машине. Переданное устройство похоже на пустое. Перезагрузка виртуальной машины решила проблему. Есть ли способ заставить виртуальную машину запускаться только в том случае, если хранилище, лежащее в основе virtioFS, в порядке (например, проверять наличие файла .something в корневой точке монтирования в виртуальной машине)?

    --редактировано--

    Я забыл про hookscripts. Я не могу написать код с нуля, чтобы спасти свою жизнь, поэтому я спросил Copilot. Он пропустил код фазы предварительного запуска в своей первой попытке. Я попросил его попробовать снова и включить его в предварительную фазу, и он предложил вот этот пример, мне кажется, что это сработает… насколько хорошо справился Copilot?

    Код:
    #!/bin/bash

    # Путь к файлу, который нужно проверить
    FILE_PATH="/path/to/your/file"

    # ID виртуальной машины
    VMID=$1
    PHASE=$2

    # Запускать проверку только во время фазы предварительного запуска
    if [ "$PHASE" == "pre-start" ]; then
     # Проверить наличие файла
     if [ ! -f "$FILE_PATH" ]; then
       echo "Файл $FILE_PATH не существует. Виртуальная машина $VMID не будет запущена."
       exit 1
     fi

     echo "Файл $FILE_PATH существует. Виртуальная машина $VMID будет запущена."
    fi

    exit 0
     
     
     
    scyto
    Guest
    #2
    0
    20.04.2025 03:22:00
    Ну, это было круто, потребовалось всего два запроса, чтобы получилось что-то работающее (да, да, я знаю, это просто для вас, ребята, программисты и сценаристы). Оно не стартует, когда файла нет, что и нужно, и выдаёт приятную ошибку с переменными, и это значит, что я могу использовать тот же скрипт со всеми тремя ВМ! Код: задача запущена агентом ресурса HA
    Файл /mnt/pve/docker-cephFS/.donotdelete не существует. ВМ 111 не запустится.
    ОШИБКА ЗАДАЧИ: ошибка hookscript для 111 на этапе pre-start: команда '/mnt/pve/ISOs-Templates/snippets/cephFS-hookscript.pl 111 pre-start' завершилась с кодом выхода 1 и стартует, когда файл присутствует — и добавляет сообщение в уведомление о старте, чтобы я знал, что скрипт запустился — отлично, это мой первый hookscript — ура.
     
     
     
    scyto
    Guest
    #3
    0
    21.04.2025 00:53:00
    Нашёл ещё одну странность: директория с моими ISO-шаблонами лежит на cephFS. Похоже, локальным ВМ разрешено запускаться ещё до готовности cephFS. Это значит, ВМ не нашла скрипт, ha-manager заблокировал её, и я не мог запустить ВМ, пока не отключил её из командной строки. Вижу два варианта: хранить hookscript в /etc/pve, чтобы он реплицировался по кластеру и мог использоваться при необходимости, или добавить следующее в /etc/systemd/system/pvestatd.service.d/override.conf:

    Code: [Unit]
    After=pve-storage.target

    Какие мысли по поводу "правильного" подхода?
     
     
     
    scyto
    Guest
    #4
    0
    21.04.2025 01:12:00
    Хм, ну метод два помогает, потому что он откладывает запуск ВМ, и я не увидел блокировку ha-manager. Но ВМ все равно пытается запуститься *до* того, как монтирование готово...

    Код: задача запущена агентом ресурса HA

    ОШИБКА ЗАДАЧИ: ошибка скрипта хука для 111 на этапе запуска: скрипта 'ISOs-Templates/snippets/cephFS-hookscript.pl' не существует, учитывая, что snippets должно быть местом хранения хук-скриптов - это практически исключает cephFS как место хранения хук-скриптов... возвращаю поток к usolved.
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

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