По привычке после потери нескольких сотен ТБ данных в прошлом во время простоя NAS я всегда устанавливаю неизменяемые точки монтирования на серверах. Это предотвращает любые изменения в структуре диска под точкой монтирования. Это предотвращает сценарий, когда диск, смонтированный в этой точке монтирования, отключается, и вместо этого ядро начинает записывать эти файлы в точку монтирования. Его неизменность предотвращает заполнение корневого тома и заставляет колокольчики безопасности начать кричать, что помогает нам быстрее заметить проблему.
Это нормально работает. Если я создам / mnt / mountpoint и сделаю его неизменным, я не смогу создавать там какие-либо файлы с правами root. Если я смонтирую том в / mnt / mountpoint, я могу без проблем создавать там тестовые файлы.
[root@test-vm-1 ~]# mkdir /mnt/test
[root@test-vm-1 ~]# touch /mnt/test/testfile
[root@test-vm-1 ~]# ls /mnt/test/testfile
/mnt/test/testfile
[root@test-vm-1 ~]# rm -f /mnt/test/testfile
[root@test-vm-1 ~]# chattr +i /mnt/test/
[root@test-vm-1 ~]# touch /mnt/test/testfile
touch: cannot touch `/mnt/test/testfile': Permission denied
[root@bcv-ub-test-vm-1 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
TEXT OMMITTED
[root@test-vm-1 ~]# mount /dev/sdb1 /mnt/test/
[root@test-vm-1 ~]# touch /mnt/test/testfile
[root@test-vm-1 ~]# umount /mnt/test
[root@test-vm-1 ~]# umount /mnt/test/testfile
umount: /mnt/test/testfile: not found
[root@test-vm-1 ~]# touch /mnt/test/testfile
touch: cannot touch `/mnt/test/testfile': Permission denied
Итак, поведение таково, что вы не можете писать в точку монтирования, если там не установлен том.
Однако я использую playbook для выполнения следующих действий:
- name: Validate that VIVALogger volume group is created and added
stat:
path: /dev/sdb1
register: stat_result
- name: Configure export volume - add mountpoint
file:
path: /mnt/test
state: directory
- name: Make test mountpoint immutable
command: "chattr +i /mnt/test"
- name: Configure export volume - mount export volume
mount:
path: /mnt/test
src: /dev/sdb1
fstype: xfs
state: mounted
opts: inode64,nobarrier
dump: 0
passno: 2
when: stat_result.stat.exists
- name: Pause for 30 seconds for volume to mount properly
pause:
seconds: 30
- name: Create testfile
command: "touch /mnt/test/testfile"
На смонтированный том нельзя записать файлы. Кажется, что неизменяемость рекурсивно применяется ко всем подкаталогам тома.
Я также попытался настроить неизменяемость с помощью файлового модуля, и поведение осталось таким же.
Кто-нибудь видел такое поведение раньше? Я использую ansible 2.6.3 против RHEL 5, 6 и 7.