В этой статье рассмотрим кластерную файловую систему pmxcfs, которая используется в гипервизоре Proxmox Virtual Environment.

Особенности pmxcfs

Файловая система кластера Proxmox — pmxcfs. Эта файловая система управляется базой данных, и используется для хранения почти всех конфигурационных файлов Proxmox VE. Она реплицируется на все узлы кластера в режиме реального времени.

И хотя файловая система хранит все данные в базе данных на диске, её копия находится в оперативной памяти. Это накладывает некоторые ограничения на её максимальный размер, который в настоящее время составляет 128 МБ. Этого пока вполне достаточно, например это позволяет хранить несколько тысяч виртуальных машин в вашем кластере Proxmox VE.

У этой файловой системы есть свои особенности:

  • она плавно реплицируется на все узлы кластера в режиме реального времени;
  • обеспечивает согласованность, для того чтобы избежать дублирования идентификаторов виртуальных машин;
  • она становится доступной только для чтения, когда узел теряет кворум, это нужно для обеспечения согласованности;
  • pmxcfs поддерживает механизм распределенной блокировки.

Эта файловая система основана на FUSE, поэтому поведение похоже на POSIX. Но некоторые функции просто не реализованы, потому что они не нужны:

  • файловая система поддерживает только файлы и каталоги, и не поддерживает ссылки;
  • не разрешается переименовывать непустые каталоги, поскольку это упрощает гарантию уникальности идентификаторов VMID;
  • не позволяет изменять права доступа к файлам.

Монтирование и права доступа

Эта файловая система смонтирована в /etc/pve. И некоторые конфигурационные файлы на гипервизоре ProxmoxVE ссылаются на файлы в этой файловой системе. Например файл authorized_keys это символическая ссылка на файл /etc/pve/priv/authorized_keys. Поэтому если узел кластера имеет кворум, то он может подключаться к другим узлам кластера по протоколу SSH. А если узел теряет кворум, то он и теряет доступ к кластеру.

# ls -l /root/.ssh/authorized_keys 
lrwxrwxrwx 1 root root 29 Oct  8  2020 /root/.ssh/authorized_keys -> /etc/pve/priv/authorized_keys

Все файлы и каталоги в этой файловой системе принадлежат пользователю root и имеют группу www-data. Права на запись есть только у root, но члены группы www-data могут читать большинство файлов. Но файлы по следующим путям доступны только пользователю root:

  • /etc/pve/priv/
  • /etc/pve/nodes/${NAME}/priv/

Эта файловая система использует следующие технологии:

  • Corosync Cluster Engine для репликации на все узлы кластера;
  • QLite для файла базы данных;
  • Файловая система реализована с использованием FUSE.

Логи

При обращении к кластеру pmxcfs пишет логи. Например в /var/log/syslog мы можем увидеть следующие записи:

Dec 29 10:31:27 <node> pmxcfs[5825]: [status] notice: received log
Dec 29 10:31:27 <node> pmxcfs[5825]: [status] notice: received log
Dec 29 10:31:27 <node> pmxcfs[5825]: [status] notice: received log
Dec 29 10:31:27 <node> pmxcfs[5825]: [status] notice: received log

Так как эти сообщения не очень полезны, то возможно их отключать в следующих версиях Proxmox VE — источник.

Сводка
Файловая система PVE pmxcfs
Имя статьи
Файловая система PVE pmxcfs
Описание
В этой статье рассмотрим кластерную файловую систему pmxcfs, которая используется в гипервизоре Proxmox Virtual Environment

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *