
Я знаю, что при использовании Ploop вы теряете место на диске, поскольку файлы добавляются/удаляются внутри контейнера, и вам приходится вручную сжимать контейнер, но я также читал, что в случае перезагрузки или сбоя контейнеры могут стать невосстановимыми.
Существуют ли способы правильной перезагрузки серверов OpenVZ, чтобы избежать повреждения контейнеров?
решение1
Даже при некорректном завершении работы контейнеров plooped обычно достаточно выполнить fsck. Это не сильно отличается от выключения реального оборудования во время операций записи. Поскольку я предполагаю, что вы будете использовать файловую систему с журналом транзакций на этих ploops, вы не должны столкнуться с дополнительными проблемами.
Как упомянул Брайан, правильное отключение хост-узла оставит ваши контейнеры чистыми, а их ploops — несмонтированными.
Если вы используете контейнеры на основе каталогов, которые используют ту же файловую систему, что и хост-узел, у вас уже есть небольшой шанс повреждения. Я думаю, что на практике большой разницы нет, только вам, возможно, придется учитывать время восстановления. Многие ploop могут потребовать больше времени для fsck, чем файловая система одного хост-узла, и могут потребовать много ручного взаимодействия.
С другой стороны, если ваш хост-узел имеет очень большую файловую систему, fscking может занять очень много времени, и это оставит все эти контейнеры выключенными во время fsck. Контейнеры, использующие ploop, могут быть запущены в шахматном порядке после того, как хост-узел снова заработает, при условии, что самому хост-узлу нечего fsck.
Эту проблему можно было бы решить, используя своего рода настройку высокой доступности, в которой узлы хоста загружают данные своих контейнеров из центрального хранилища и переключают друг друга в случае сбоев, но, по-моему, это уже слишком.
Каковы ваши причины рассмотреть ploop? Мы рассматривали его для более высокой производительности через NFS, где множество мелких файлов в контейнере действительно замедляют работу. Но поскольку вы упоминаете повреждение файловой системы, это, вероятно, не ваш сценарий.
решение2
Нет, вам придется подождать, пока каждый «плупс» не остановится должным образом.
Для доступа к файлам контейнеры ploop должны быть запущены через их корневой каталог.
Контейнеры simpfs представляют собой структуры каталогов, похожие на chroot, поэтому к ним можно получить доступ независимо от того, включены они или выключены.
Я управляю тысячами контейнеров и не могу тратить время на ожидание. Я должен ждать, пока контейнеры ploop будут запущены, когда мне нужно получить доступ или выполнить миграцию, или ждать, пока они не отключатся, чтобы управлять хостом, на котором есть контейнеры ploop. Кроме того, если ploop поврежден, вам придется начинать все сначала, его больше нет. Поскольку я сталкивался с этими повреждениями не один и не два раза, я называю ее ненадежной системой, независимо от того, насколько она хороша.