Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    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 Виртуальная Среда
    Монитор Ceph Quincy в Proxmox 8 перестал работать на AMD Opteron 2427.

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Монитор Ceph Quincy в Proxmox 8 перестал работать на AMD Opteron 2427., Proxmox Виртуальная Среда
     
    jdancer
    Guest
    #1
    0
    26.06.2023 23:44:00
    Да, да, знаю. Проблема с CPU в конце жизненного цикла. Ceph отлично работал под Proxmox 7, используя тот же CPU. Я обновился с pve7to8 и сделал чистую установку Proxmox 8. В обеих ситуациях Ceph монитор выдавал ошибку 'Caught signal (illegal instruction)' при запуске. Похоже, проблема либо в бинарнике, либо нужно перекомпилировать. Я уже выложил свои наблюдения в ветке Proxmox VE 8.0 released!. Кто-нибудь делал чистую установку Proxmox 8 Ceph на каком-нибудь другом CPU?
     
     
     
    t.lamprecht
    Guest
    #2
    0
    07.09.2023 16:47:00
    Отлично, что так! И всё-таки, каким образом вы установили флаг в итоге? Для всего Ceph или только для частей, связанных с erasure-coding/gf-complete? Если вам понадобится сделать что-то подобное в будущем, вот как можно создать локальный репозиторий, который можно использовать для обычной установки: увеличьте версию в changelog, обычно это в debian/changelog, но здесь, для Ceph, мы берём на себя большую часть упаковки от upstream, и поэтому changelog находится в changelog.Debian. Самый быстрый способ — добавить +1 в конце версии, указанной в первой строке вверху. чисто создайте копию пакетов на хосте, с которого они должны быть установлены, перейдите в этот каталог и запустите dpkg-scanpackages . >Packages Добавьте запись репозитория для этого, например, в /etc/apt/sources.list: deb [trusted=yes] file:///path/to/pkg-archive ./ выполните стандартную apt update, а затем apt full-upgrade. Да, это определённо было бы хорошо сделать, пока мы не сможем это исправить более аккуратно. Не могли бы вы открыть enhancement request на это в нашем Bugzilla, чтобы мы могли отслеживать это: https://bugzilla.proxmox.com/
     
     
     
    Kachidoki
    Guest
    #3
    0
    31.08.2023 11:29:00
    Спасибо @t.lamprecht за эту инструкцию. Я сейчас пытаюсь её придерживаться (говорю как разработчик встроенного ПО, не привык к таким высокоуровневым сборкам). Просто чтобы добавить ещё одно ограничение, я хотел подготовить среду сборки под debian 12 VM прямо на ноде (используя локальное хранилище, так как ceph не работает), указав тип CPU как хост, чтобы gcc использовал реальный тип процессора. Но в момент, когда я удалил и пересоздал VM, я забыл указать "host" и оставил "x86-64-v2-AES", что привело к новой ошибке, связанной с набором инструкций SSE: Хотел просто сообщить об этом.
     
     
     
    t.lamprecht
    Guest
    #4
    0
    31.08.2023 11:37:00
    Да, это известно. Когда мы обновили тип процессора по умолчанию, который выбирается в мастере создания ВМ в веб-интерфейсе, с устаревшей и теперь устаревшей kvm64 на что-то новее в выпуске Proxmox VE 8.0 два месяца назад, нам пришлось сделать выбор с компромиссами, какую x86 psABI модель использовать. После довольно бурной дискуссии мы решили использовать уровень v2, так как его поддерживают практически все, кроме очень старых процессоров. Это, конечно, компромисс, но теперь ВМ получают включенную поддержку AES и SSE по умолчанию, если процессор хоста это поддерживает, что значительно повышает производительность для широкого спектра приложений и чего (особенно начинающие) пользователи не замечали при начале работы.
     
     
     
    Kachidoki
    Guest
    #5
    0
    05.09.2023 11:20:00
    Привет! Я не смог завершить сборку в моей виртуальной машине, даже с одним потоком и 8 ГБ, выделенными виртуальной машине на этом узле с 6 ядрами и 16 ГБ памяти... Не знаю точно почему, но каждый раз OOM приводил к завершению работы qemu, хотя кроме самого Proxmox больше ничего не работало. Тогда я решил прекратить эксперименты и перейти к более серьезному пути. Я использовал часть EPYC 7742, который был у меня, выделил 32 ядра виртуальной машине VMware с 4 ГБ на поток. Сборка определенно идет намного быстрее, но самое главное – она завершилась! Затем я подготовил несколько вариантов: сборку со стандартными настройками, просто чтобы убедиться, что сборка в порядке... вставлял -O1 в CMakeList.txt только для CFLAGS, в debian/rules только для CFLAGS, в debian/rules для CFLAGS, CXXFLAGS, CPPFLAGS. Я почти уверен, что видел -O1 в параметрах в консольном выводе, по крайней мере, в последнем варианте. Теперь мне, возможно, потребуется немного совета о том, как правильно установить получившийся .deb, и особенно чтобы быть уверенным, что используется именно моя сборка, потому что подозреваю, что apt использует кеш или даже повторно скачивает пакет. Я пытался установить с помощью dpkg -i, и даже пытался вручную распаковать бинарник ceph-mon. В обоих случаях поведение оставалось прежним, ceph-mon получал сигнал "illegal instruction". Было весело, и я так близко, пожалуйста, помогите с последним шагом.
     
     
     
    t.lamprecht
    Guest
    #6
    0
    06.09.2023 09:27:00
    Хм, не могли бы вы, пожалуйста, выложить полный диф ваших изменений здесь в тегах [code][/code]? Иначе сложно понять, ошибка на моей стороне или вашей. Можно также попробовать добавить следующее в ceph/debian/rules:

    Код:
    export DEB_CFLAGS_MAINT_APPEND = -O1
    export DEB_CXXFLAGS_MAINT_APPEND = -O1

    Обратите внимание, что директория ceph копируется только в первый раз, после чего нужно запустить make clean перед повторной сборкой с другим изменением.
     
     
     
    Kachidoki
    Guest
    #7
    0
    07.09.2023 18:03:00
    Последний момент, добавляю это в ceph/debian/rules: Код: export DEB_CFLAGS_MAINT_APPEND = -O1
    export DEB_CXXFLAGS_MAINT_APPEND = -O1 НО, для полноты картины, и теперь, когда у меня больше опыта в локальном управлении пакетами благодаря вашей бесценной помощи, попробую снова, восстановив официальные пакеты, ограничив флаг ceph/src/erasure-code/jerasure/CMakeLists.txt, подняв версию и так далее. Сейчас это проверяю! EDIT: #4953
     
     
     
    Kachidoki
    Guest
    #8
    0
    09.09.2023 12:53:00
    Наконец-то сделал тест, добавив -O1 в ceph/src/erasure-code/jerasure/CMakeLists.txt только в COMPILE_FLAGS. На этот раз я позаботился о чистой сборке и развертывании. Разумеется, сначала восстановил upstream-пакеты и убедился, что проблема вернулась, прежде чем делать этот тест. Похоже, этого достаточно, ceph работает с этой маленькой поправкой. Немного поиграл, добавив седьмой OSD, запустил перебалансировку, читал и писал в CephFS и Ceph RBD – пока что всё хорошо. Но я не использую какие-то особо продвинутые функции. О снижении производительности сказать не могу, мне это и не особо интересно, система и так была относительно медленной раньше.
     
     
     
    kifeo
    Guest
    #9
    0
    08.11.2023 10:06:00
    Проблема с HP N54L решена с помощью версии 17.2.7.
     
     
     
    t.lamprecht
    Guest
    #10
    0
    08.11.2023 11:16:00
    Да, это включает в себя явную обходной путь для этой проблемы: https://git.proxmox.com/?p=ceph.git;a=commitdiff;h=e26c9c960404308acf1419d8d77a80cb1abdf4e4
     
     
     
    dwm
    Guest
    #11
    0
    01.08.2023 22:00:00
    Заглянем чуть глубже, и выяснится, что современный GCC может чрезмерно оптимизировать gf-complete и генерировать инструкции, которых может не быть на старых AMD64 CPU: Debian bug https://bugs.debian.org/1012935. Решение, принятое Debian, похоже, заключается в том, чтобы вызывать GCC с флагом -O1: https://salsa.debian.org/openstack/...mmit/7751c075f868bf95873c6739d0d942f2a668c58f. Задача будет заключаться в том, чтобы внедрить этот флаг в систему сборки Ceph CMake в нужном месте. Если посмотреть на https://github.com/ceph/ceph/blob/4.../src/erasure-code/jerasure/CMakeLists.txt#L70, то можно предположить, что это можно сделать, исправив CMakeLists.txt и добавив значение "-O1" в список флагов компилятора? (Конечно, это может повлиять на производительность, за исключением того, что, как сообщается, библиотека gf-complete динамически использует оптимизации во время выполнения?) Разработчики Ceph заняты финальным процессом принятия решения о выпуске Reef, но, возможно, когда всё успокоится, они заинтересуются принятием исправления в основной код…
     
     
     
    Diego Aguirre
    Guest
    #12
    0
    23.08.2023 18:23:00
    Та же проблема с Intel® Xeon® CPU E5320  @ 1.86GHz
     
     
     
    Diego Aguirre
    Guest
    #13
    0
    28.08.2023 14:41:00
    Есть способ проверить, совместим ли мой CPU? У меня еще несколько кластеров, которые нужно обновить!
     
     
     
    t.lamprecht
    Guest
    #14
    0
    28.08.2023 16:20:00
    Этот процессор из 2006 года, у нас нет тестового железа для такого старого оборудования. Самое старое наше тестовое железо уже на базе микроархитектуры Nehalem, которое, я надеюсь, достаточно новое, чтобы поддерживать SSE4.2 и не было затронуто. Посмотрим, будет ли у нас немного свободного времени, чтобы подключить его и загрузить снова с последним релизом Proxmox VE, чтобы проверить, заработает ли там. Как грубая эвристика: если оно было выпущено в течение последнего десятилетия (т.е. 2010+), то должно быть нормально. Чуть более конкретно, если оно поддерживает SSE 4.1, то должно быть всё в порядке. Насколько я помню, для Intel это микроархитектура Penryn (~2007), а для AMD — микроархитектура Bulldozer (~2011). Сейчас я знаю только об одном возможном обходном пути: уменьшить уровень оптимизации при компиляции до -O1, что приведет к довольно серьезному влиянию на производительность для большинства наших пользователей, чего мы бы предпочли избежать. В идеале это должно быть исправлено (или исправление должно быть перенесено в GCC-12).
     
     
     
    Kachidoki
    Guest
    #15
    0
    29.08.2023 21:58:00
    Привет. Только что зарегистрировался, чтобы сообщить, что со мной тоже случилось с "AMD Phenom II X6 1090T Black Edition" (2010/2011). Звездная микроархитектура, прямо перед Bulldozer. К сожалению, это произошло на одиночном узле Ceph. Я понимаю, что это не лучший сценарий, но мне это подходит, так как область отказа эквивалентна простому NAS. К счастью, это пока машина для тестов, там нет критических данных, в основном дублировано с моего старого основного NAS, и у меня есть резервные копии. Несмотря на все тесты на прочность, которые я проводил, мне никогда не удавалось потерять хоть один файл – Ceph такой устойчивый и надёжный. Но я никогда не думал, что крупное обновление сломает его так сильно. Чтобы продолжить тестирование, как будто это реальная ситуация, я попробую восстановить этот узел, хотя бы частично. Откат кажется невозможным или слишком рискованным, не хочу сразу ухудшать ситуацию с тестом. Согласен, этого следует избегать. Может быть, хотя бы подскажете способ пересобрать Ceph с -O1 для этого небольшого числа пользователей? Достаточно ли будет Github readme? Особенно в отношении настроек, чтобы запускать собранную версию вместо стандартной и использовать существующую конфигурацию узла. Я бы хотел иметь возможность запускать Ceph, хотя бы временно, чтобы доказать, что данные можно восстановить даже в таком безнадежном случае. С уважением.
     
     
     
    t.lamprecht
    Guest
    #16
    0
    30.08.2023 18:14:00
    Наш основной зеркало источника находится на git.proxmox.com, GitHub — в лучшем случае зеркало только для чтения по отношению к нашим проектам. Так что вам нужно клонировать текущую ветку для Ceph 17.2 Quincy для Proxmox VE 8: git clone -b quincy-stable-8 git://git.proxmox.com/git/ceph.git.

    Затем добавьте что-то вроде этого изменения: https://salsa.debian.org/openstack-...mmit/03e0314af5e814a7ef74dcf4f9416d60c6322e51.

    Затем установите все зависимости для сборки, это можно автоматизировать через Code: apt install devscripts
    mk-build-deps -ir.

    Начните сборку с: Code: # Disable building the dbgsym packages (they're huge)
    export DEB_BUILD_OPTIONS=noautodbgsym
    make deb.

    Несколько советов и оговорок: Я не собирал с вышеуказанным изменением d/rules, но, должно быть, этого достаточно, хотя я не могу этого гарантировать, боюсь. Сборки Ceph огромны и потребляют много ресурсов. Особенно использование памяти растёт с более высоким уровнем параллельности, то есть вам почти 2 ГБ на поток для сборки и компоновки. В зависимости от вашего оборудования, сборка может занять довольно много времени, здесь это занимает примерно от 30 до 45 минут с 56 ядрами, выделенными из двухпроцессорной системы dual EPYC 7351.

    О, и можно попробовать добавить -O1 в качестве флага компиляции только в файл ceph/src/erasure-code/jerasure/CMakeLists.txt перед запуском make deb. Это ограничит использование худшего уровня оптимизации только кодированием стирания, но, честно говоря, я не на 100% уверен, что не будет никаких других побочных эффектов.
     
     
     
    Kachidoki
    Guest
    #17
    0
    07.09.2023 12:52:00
    Заново начал с твоего последнего предложения, с нуля, сделал "make clean", `git reset --hard`, `git clean`, и в этот раз использовал `make deb 2>&1 | tee ~/make.log`. Думаю, что "make clean" между попытками был недостающим элементом. После анализа логов видно, что оптимизационный флаг учитывается, вижу нормальные `xFLAGS` с `-O2`, за которыми следует добавление `-O1`. Обычно используется последний из них. Потом попробовал `apt reinstall ./ceph-mon_17.2.6-pve1+3_amd64.deb`, который, как оказалось, использует правильный путь. Точно не помню, но как есть не сработало. В итоге просто "проломил" систему, удалив `rm ./*-dbg*.deb` и запустив `apt reinstall ./*.deb`. В какой-то момент это сломалось из-за отсутствующего `/home/cephadm/.ssh`, потом я создал его командой `mkdir -p /home/cephadm` и переустановил пакет снова. И... все. `ceph-mon` жив. Кстати, у меня была такая же проблема, "решенная" отключением модулем restful. После завершения пропущенной работы по очистке, `ceph` теперь работает и здоров. Могу получить доступ к данным, как будто ничего не было. Довольно грязный способ, но раз это было только ради забавы, я доволен и получил массу удовольствия. Теперь могу сказать, что `ceph` действительно, действительно надёжен. Дальше нужно найти более новую тестовую машину (может, мой FX8350? он тоже довольно старый...), чтобы заменить старую, и подумать, что делать со старой. О, и было бы неплохо, если бы `pve7to8` мог выявлять эту проблему ПЕРЕД тем, как люди начнут запускать обновление. И последнее, если потребуется, могу провести дополнительные тесты с этой машиной, даже переустановить `pve8` с нуля или сделать обновление с `pve7` на `pve8` и так далее... Большое спасибо @t.lamprecht за follow-up, это было очень полезно и поучительно.
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

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