[freebsd] releng/13.1 issues as vbox-6.1 guest

Anton Saietskii vsasjason at gmail.com
Tue Jul 12 17:25:00 EEST 2022


В общем, косяк со временем тоже починен. Ради теста kvmclock настройка
paravirtualization interface стояла в значении KVM, вернул на default
и время при запуске виртуалки стало нормальным. Вывод:
1. Не используйте контроллер LSI Logic SAS, он портит данные.
2. Не используйте интерфейс паравиртуализации KVM, он портит время.

On Tue, Jul 12, 2022 at 2:29 PM Anton Saietskii <vsasjason at gmail.com> wrote:
>
> On Thu, Jul 7, 2022 at 9:44 PM Владимир Друзенко via freebsd
> <freebsd at uafug.org.ua> wrote:
> >
> > Повторяю в рассылку. Просьба не отвечать на личные адреса, а только в рассылку.
> Да это всё из-за отстутствия reply-to -- охота нажать reply вместо
> reply all, постоянно с этим борюсь, но не всегда успешно.
>
> > 07.07.2022 20:40, Anton Saietskii пишет:
> >
> > On Thu, Jul 7, 2022, 20:22 Владимир Друзенко via freebsd <freebsd at uafug.org.ua> wrote:
> >>
> >> 07.07.2022 18:23, Anton Saietskii пишет:
> >> > Приветствую,
> >> > Пока тут тестировал сабж, наткнулся на пару неприятных моментов и
> >> > хотел бы поделиться -- вдруг кому полезно будет.
> >> >
> >> >
> >> > ** Проблема №1:
> >> > После установки emulators/virtualbox-ose-additions при запуске
> >> > виртуалки системная дата устанавливается на 2299-й год. Это не зависит
> >> > от настройки "hw clock in utc" (ещё бы, тут проблема не просто в
> >> > часовом поясе...)
> >> > Синхронизация времени выполняется с помощью vboxservice, который
> >> > находится достаточно далеко от начала rcorder, из-за чего некоторые
> >> > важные файлы имеют дату в далёком будущем, т.к. изменяются во время
> >> > загрузки перед запуском vboxservice.
> >> > Я не проверял, станет ли системная дата опять нормальной, если снести
> >> > пакет, а из конфига виртуалки вычистить все свойства, которые
> >> > устанавливаются guest additions. Вместо этого решил закостылить так:
> >> >
> >> > $ cat /etc/rc.d/save_time
> >> > #! /bin/sh
> >> >
> >> > # KEYWORD: nojail shutdown
> >> >
> >> > . /etc/rc.subr
> >> >
> >> > name=save_time
> >> > rcvar=save_time_enable
> >> >
> >> > start_cmd="${name}_start"
> >> > stop_cmd="${name}_stop"
> >> >
> >> > load_rc_config $name
> >> > : ${save_time_enable:=NO}
> >> > : ${save_time_file:="/var/db/save_time"}
> >> >
> >> > save_time_start() {
> >> >          if [ -r $save_time_file -a -s $save_time_file ]; then
> >> >                  saved_time=`cat $save_time_file`
> >> >                  echo "Restoring date/time from $save_time_file as $saved_time"
> >> >                  date $saved_time
> >> >          fi
> >> > }
> >> >
> >> > save_time_stop() {
> >> >          echo -n "Saving date/time to $save_time_file... "
> >> >          date +%Y%m%d%H%M > $save_time_file
> >> >          if [ $? -ne 0 ]; then
> >> >                  warn "cannot save."
> >> >          else
> >> >                  echo "done."
> >> >          fi
> >> > }
> >> >
> >> > run_rc_command "$1"
> >> >
> >> > То, что системные часы "отстанут" на время, в течение которого
> >> > виртуалка была выключена, в принципе, для меня вполне терпимо.
> >> > Обнаружилась лишь небольшая неприятность после: cron запускается в
> >> > прошлом, т.к. vboxservice по дефолту при своём запуске корректирует
> >> > время постепенно, а не моментально. Это решилось включением
> >> > соответствующей опции:
> >> > $ grep vboxservice_flags /etc/rc.conf
> >> > vboxservice_flags="--timesync-set-start"
> >> >
> >> > Готов ловить летящие помидоры и яйца, если вдруг таковые имеются.
> >>
> >> Что-то явно делаете не так или умалчиваете.
> >> У меня 10+ лет работает 4 сервера с headless VirtulBox (3=>4=>5=>6) на
> >> FreeBSD (9=>10=>11=>12=>13) и ничего подобного замечено не было.
> >
> > 1. Создао виртуалку.
> > 2. Поставил фрю.
> > 3. Поставил пакет virtualbox-ose-additions-nox11
> > 4. Запустил VBox{guest|service} (не включая автозапуск)
> > 5. Перезагрузился.
> > 6. В виртуалке год 2299
> >
> >> Конечно же при остановке сервера виртуалки savestate.
> >
> > Не вижу смысла при переходе хоста в S3 каждый раз писать весь объём памяти виртуалки на диск.
> >
> > Может из-за этого все проблемы. Так что лучше проверить.
> Проблема со временем совершенно точно не имеет никакого отношения к S3
> хоста, ибо системное время становится в будущем при _холодном старте_
> виртуалки.
> Проблема же с диском -- да, вероятно. И подозреваю, что просто LSI
> Logic SAS кривой, т.к. после переключения на SCSI (кстати, фря оба
> контроллера видит через mpt) данные уже не бьются.
>
> >
> >
> >> > ** Проблема №2:
> >> > Имеется следующая конфигурация дисковой подсистемы:
> >> > Контроллер LSI Logic SAS, к нему подключен VDI с опциями nonrotational
> >> > и discard (чтобы этот VDI сам ужимался).
> >> > Внутри виртуалки: GPT (1M align) -> GELI (4K sectorsize, trim
> >> > пропускается) -> ZFS (autotrim=on).
> >> > Хост может уходить в S3/S4, никаких специальных действий для виртуалки
> >> > при этом не предпринимается.
> >>
> >> savestate
> >>
> >>
> >> > Через несколько дней внезапно побились контрольные суммы, что
> >> > затронуло пяток файлов, в messages было такое:
> >> >
> >> > Jun 24 17:21:36 freebsdvm ZFS[998]: checksum mismatch, zpool=zroot
> >> > path=/dev/da0p3.eli offset=3501813760 size=12288
> >> > Jun 24 17:21:36 freebsdvm ZFS[1002]: pool I/O failure, zpool=zroot error=97
> >> > Jun 24 17:21:36 freebsdvm ZFS[1006]: checksum mismatch, zpool=zroot
> >> > path=/dev/da0p3.eli offset=3502202880 size=12288
> >> > Jun 24 17:21:36 freebsdvm ZFS[1010]: pool I/O failure, zpool=zroot error=97
> >> > Jun 24 17:21:36 freebsdvm ZFS[1014]: checksum mismatch, zpool=zroot
> >> > path=/dev/da0p3.eli offset=3502190592 size=12288
> >> > Jun 24 17:22:28 freebsdvm ZFS[1028]: pool I/O failure, zpool=zroot error=97
> >> > Jun 24 17:22:28 freebsdvm ZFS[1032]: pool I/O failure, zpool=zroot error=97
> >> >
> >> > Недолго думая, я переустановил затронутые пакеты, прогнал scrub да успокоился.
> >> > Ещё через несколько дней опять побились контрольные суммы, но это уже
> >> > затронуло один файл. Виртуалка начала неистово читать диск, а в
> >> > messages я успел прочесть следующее (таких сообщений, как ранее уже не
> >> > было):
> >> >
> >> > Jul  4 15:13:40 freebsdvm kernel: [93142] mpt0: request
> >> > 0xfffffe0005dd7d80:54344 timed out for ccb 0xfffff80018953000
> >> > (req->ccb 0xfffff80018953000)
> >> > Jul  4 15:13:40 freebsdvm kernel: [93142] mpt0: attempting to abort
> >> > req 0xfffffe0005dd7d80:54344 function 0
> >> > Jul  4 15:13:40 freebsdvm kernel: [93142] mpt0: abort of req
> >> > 0xfffffe0005dd7d80:54344 completed
> >> > Jul  4 15:13:40 freebsdvm kernel: [93142] mpt0: attempting to abort
> >> > req 0xfffffe0005dd7d80:54344 function 0
> >> > Jul  4 15:13:40 freebsdvm kernel: [93142] mpt0: abort of req
> >> > 0xfffffe0005dd7d80:54344 completed
> >> >
> >> > С памятью на хосте всё в порядке. Что это за чудеса были и как вообще
> >> > такое дебажить -- я не знаю, но подозреваю, что тут какой-то косяк в
> >> > реализации TRIM (а вот со стороны FreeBSD или VirtualBox?) Запускал
> >> > руками zpool trim в виртуалке, vboxmanage --modifymedium 'VM disk.vdi'
> >> > --compact на хосте -- всё нормально, ничего не бьётся.
> >> > Пока сменил тип контроллера на LSI Login SCSI и наблюдаю.
> >>
> >> А зачем это всё?
> >>
> >> zfs на хосте со сжатием. В гостях ufs. Запись нулей на диск внутри
> >> виртуалки освобождает место на хосте.
> >
> > В качестве эксперимента. Задача -- протестировать FDE GELI + ZFS (последний раз я подобное поднимал ещё тогда, когда GELI хотел /boot на отдельном незашифрованном разделе).
> > Хост в ZFS не умеет, но это и несущественно в связи с постановкой задачи.
> >
> > Хост не FreeBSD?! С этого и надо начинать. Может это проблемы настройки хоста.
> Хост, к сожалению, вообще мастдай, но:
> 1. Смотрю в левый нижний угол и вижу 2022-й год, проблем с настройкой не вижу.
> 2. Относительно дисков -- как выше написал в письме, уже вроде не
> бьётся. Anyway, даже если бы хост умел в ZFS -- внутри виртуалки у
> меня бы всё равно была ZFS, т.к. конкретную конфигурацию нужно было
> проверить (и почему бы её потом не перенести как есть на физическую
> машину?)
>
> >
> > Файлы, кстати, не бьются после выхода хоста из S3. Оно какое-то время работает себе спокойно, потом внезапно ломается. Не думаю, что тут вообще есть какая-то связь с S3.
> >
> >
> > _______________________________________________
> > freebsd mailing list
> > freebsd at uafug.org.ua
> > http://mailman.uafug.org.ua/mailman/listinfo/freebsd


More information about the freebsd mailing list