<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>48085</bug_id>
          
          <creation_ts>2023-10-20 10:02:00 +0300</creation_ts>
          <short_desc>Проброс virtiofs не работает с ACL</short_desc>
          <delta_ts>2024-04-13 11:41:37 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Distributions</classification>
          <product>Альт Сервер</product>
          <component>Ошибки работы</component>
          <version>10.1</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Андрей">mckspm</reporter>
          <assigned_to name="Evgeny Sinelnikov">sin</assigned_to>
          <cc>lav</cc>
          
          <qa_contact name="qa-p8@altlinux.org">qa-p8</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>235260</commentid>
    <comment_count>0</comment_count>
    <who name="Андрей">mckspm</who>
    <bug_when>2023-10-20 10:02:00 +0300</bug_when>
    <thetext>[b]Дано:[/b]

Сервер с ОС alt-server-v-10.1-x86_64 (ядро 5.10.194-std-def-alt1)

На сервере две VM:

VM1: ОС alt-server-10.1-x86_64 (ядро 5.10.197-std-def-alt1)
VM2: ОС alt-kworkstation-10.2-x86_64 (ядро 6.1.54-un-def-alt1)

Все три ОС обновлены и актуальны.

К серверу виртуализации подмонтированы два одинаковых диска с ext4 и параметром acl. Права acl на сервере виртуализации работают без ошибок.
[code]#cat /etc/fstab | grep work
UUID=7033abb5-684a-4e17-8e1d-a98847608f12       /mnt/work1      ext4    nosuid,nodev,noexec,usrquota,grpquota,acl       1       0
UUID=d38acd9c-2522-4168-93c2-ac1ab9769a79       /mnt/work2      ext4    nosuid,nodev,noexec,usrquota,grpquota,acl       1       0
[/code]

Сервер виртуализации настроен на проброс этих дисков:

Настройки VM1:
[code]&lt;filesystem type=&apos;mount&apos; accessmode=&apos;passthrough&apos;&gt;
  &lt;driver type=&apos;virtiofs&apos;/&gt;
  &lt;binary path=&apos;/usr/libexec/my-virtiofsd&apos;/&gt;
  &lt;source dir=&apos;/mnt/work1/work&apos;/&gt;
  &lt;target dir=&apos;work&apos;/&gt;
  &lt;alias name=&apos;fs0&apos;/&gt;
  &lt;address type=&apos;pci&apos; domain=&apos;0x0000&apos; bus=&apos;0x02&apos; slot=&apos;0x00&apos; function=&apos;0x0&apos;/&gt;
&lt;/filesystem&gt;[/code]

Настройки VM2:
[code]&lt;filesystem type=&apos;mount&apos; accessmode=&apos;passthrough&apos;&gt;
  &lt;driver type=&apos;virtiofs&apos;/&gt;
  &lt;binary path=&apos;/usr/libexec/my-virtiofsd&apos;/&gt;
  &lt;source dir=&apos;/mnt/work2/work&apos;/&gt;
  &lt;target dir=&apos;work&apos;/&gt;
  &lt;alias name=&apos;fs0&apos;/&gt;
  &lt;address type=&apos;pci&apos; domain=&apos;0x0000&apos; bus=&apos;0x02&apos; slot=&apos;0x00&apos; function=&apos;0x0&apos;/&gt;
&lt;/filesystem&gt;[/code]

Скрипт /usr/libexec/my-virtiofsd перехватывает запросы к virtiofsd добавляя в них флаги поддержки ACL
[code]cat /usr/libexec/my-virtiofsd
#!/bin/sh
exec /usr/libexec/virtiofsd --cache=always --xattr --posix-acl $@[/code]

На обеих VM virtiofs смонтировано одинаково (без флага acl, т.к. virtio не хочет видеть этот флаг в fstab):
[code]#cat /etc/fstab | grep virtiofs
work            /mnt/work       virtiofs        rw,noatime,nodev,nosuid,_netdev         0 2[/code]


[b]ПРОБЛЕМА:[/b]

На VM2 ACL работает на всех дисках без ошибок.

На VM1 ACL работает на системном диске, но virtiofs не может подключить проброшенный диск с флагами &quot;--xattr --posix-acl&quot; (без этих флагов диск пробрасывается без ошибок).
В логе на сервере виртуализации при попытке подключения диска полявляются строки:

[code]cat /var/log/libvirt/qemu/vm1-fs0-virtiofsd.log
[2023-10-19T08:18:57Z ERROR virtiofsd::passthrough] Cannot enable posix ACLs, client does not support it[/code]

Из лога следует, что virtiofsd не верит, что VM1 (ОС alt-server-10.1-x86_64) поддерживает ACL, хотя по факту обе VM настраивались одинаково и обе поддерживают ACL.
[b]Можно ли добавить поддержку acl через virtiofs в ОС alt-server-10.1-x86_64?[/b]


В дополнение привожу параметры загрузки ядра VM.

[b]VM1[/b]
[code]# cat /boot/config-5.10.197-std-def-alt1 | grep ACL
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_F2FS_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_EROFS_FS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_CEPH_FS_POSIX_ACL=y
CONFIG_9P_FS_POSIX_ACL=y

# cat /boot/config-5.10.197-std-def-alt1 | grep XATTR
CONFIG_EXT2_FS_XATTR=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_F2FS_FS_XATTR=y
CONFIG_TMPFS_XATTR=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_UBIFS_FS_XATTR=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_EROFS_FS_XATTR=y
CONFIG_CIFS_XATTR=y
CONFIG_EVM_EXTRA_SMACK_XATTRS=y
# CONFIG_EVM_ADD_XATTRS is not set
[/code]


[b]VM2[/b]
[code]cat /boot/config-6.1.54-un-def-alt1 | grep ACL
CONFIG_XILINX_EMACLITE=m
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_F2FS_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_NTFS3_FS_POSIX_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_JFFS2_FS_POSIX_ACL=y
CONFIG_EROFS_FS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_CEPH_FS_POSIX_ACL=y
CONFIG_9P_FS_POSIX_ACL=y

cat /boot/config-6.1.54-un-def-alt1 | grep XATTR
CONFIG_EXT2_FS_XATTR=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_F2FS_FS_XATTR=y
CONFIG_TMPFS_XATTR=y
CONFIG_JFFS2_FS_XATTR=y
CONFIG_UBIFS_FS_XATTR=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_EROFS_FS_XATTR=y
CONFIG_CIFS_XATTR=y
CONFIG_EVM_EXTRA_SMACK_XATTRS=y
# CONFIG_EVM_ADD_XATTRS is not set[/code]</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>