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