LINUX.ORG.RU
решено ФорумAdmin

Узнать текущий режим журналирования EXT4

 ,


0

1

Привет!

Как узнать какой сейчас уровень журналирования? Те сведения, что я получаю, они противоречивы. Кому верить?

dmesg говорит, что dm-3 смонтирован в режиме ordered data:

sudo dmesg | grep EXT4
[    3.606496] EXT4-fs (dm-2): 2 orphan inodes deleted
[    3.606498] EXT4-fs (dm-2): recovery complete
[    3.674947] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[    6.807128] EXT4-fs (dm-2): re-mounted. Opts: (null)
[   14.243801] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[   14.996558] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)

dm-3 это мой HOME:

$ realpath /dev/mapper/vg01-home 
/dev/dm-3

Если посмотреть на вывод tune2fs

sudo tune2fs -l /dev/mapper/vg01-home

то обнаружим, что дефолтные опции монтирования (Default mount options) включают journal_data, но почему в demesg ordered data? Где реальность и как узнать, какой сейчас используется режим журналирования ФС?

tune2fs 1.45.5 (07-Jan-2020)
Filesystem volume name:   <none>
Last mounted on:          /home
Filesystem UUID:          ae4ccbf7-ab32-4274-a1f0-33a811cbba11
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         signed_directory_hash 
Default mount options:    journal_data user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              655360
Block count:              2621440
Reserved block count:     131072
Free blocks:              677390
Free inodes:              515565
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      1024
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Fri Feb  1 01:35:02 2019
Last mount time:          Sun Mar 15 12:30:49 2020
Last write time:          Sun Mar 15 15:32:02 2020
Mount count:              129
Maximum mount count:      -1
Last checked:             Fri Feb  1 01:35:03 2019
Check interval:           0 (<none>)
Lifetime writes:          3260 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     32
Desired extra isize:      32
Journal inode:            8
First orphan inode:       133838
Default directory hash:   half_md4
Directory Hash Seed:      dc916ca1-f837-4230-b972-a6e86b022d7a
Journal backup:           inode blocks
Checksum type:            crc32c
Checksum:                 0x2d4ec7e8

mount не показывает дефолтные опции монтирования:

mount | grep mapper
/dev/mapper/vg01-root on / type ext4 (rw,noatime)
/dev/mapper/vg01-home on /home type ext4 (rw,noatime)
/dev/mapper/vg01-var on /var type ext4 (rw,noatime)

в процессе загрузки выполняется команда mount -o remount,rw,data=ordered, возможно в /etc/fstab (там делается mount -a), если не найдёшь в fstab, то грепай по скриптам инициализации.

в tune2fs же всё верно, стоит journal_data. которая будет, при монтировании по-умолчанию простым mount без параметров.

Spoofing ★★★★★ ()
Ответ на: комментарий от Spoofing

Погрепал, есть какая-то запись мне непонятная, не могу уловить о чём она (последняя строчка), что это значит? Какие новые опции монтирования не совпадают с опциями суперблока и будут проигнорированы? Т.е, что это значит, какие опции после загрузки ОС действуют, из суперблока или нет?

sudo dmesg | grep mount

[    3.674947] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[    6.661505] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    6.777019] systemd[1]: Starting Remount Root and Kernel File Systems...
[    6.783394] systemd[1]: proc-sys-fs-binfmt_misc.automount: Got automount request for /proc/sys/fs/binfmt_misc, triggered by 361 (systemd-binfmt)
[    6.807128] EXT4-fs (dm-2): re-mounted. Opts: (null)
[    6.808122] systemd[1]: Started Remount Root and Kernel File Systems.
[   14.243801] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[   14.996558] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
[   17.172373] new mount options do not match the existing superblock, will be ignored
dva20 ()
Ответ на: комментарий от dva20

теперь погрепайте юниты, ls /etc/systemd/system/ | grep mount, надо найти тот юнит, который перемонтирует корневую / фс и починить его как вам надо.

--

ахаха ржу в голосину. вы тут не при чём, я просто каждый раз вспоминаю фанатиков systemd яростно защищающих этот говнинит.

вот, посмотрите, у человека проблема в которой он не может разобраться, при этом человек вполне шаристый, просто ему этот systemd не всрался, — ему сначала приходится разбираться с systemd, чтобы решить свою проблему. а будь там system v, всё бы на поверхности лежало.

ЗЫ. можете добавить тэг systemd, пускай эти клоуны начнут оправдываться в треде.

Spoofing ★★★★★ ()
Последнее исправление: Spoofing (всего исправлений: 1)
Ответ на: комментарий от Spoofing

Да, обнаружился такой сервис:

/usr/lib/systemd/systemd-remount-fs

Вот что говорит man об этом:

systemd-remount-fs.service is an early boot service that applies mount options listed in fstab(5), or gathered from the partition table (when systemd-gpt-auto-generator(8) is active) to the root file system, the /usr file system, and the kernel API file systems. This is required so that the mount options of these file systems — which are pre-mounted by the kernel, the initial RAM disk, container environments or system manager code — are updated to those configured in /etc/fstab and the other sources. This service ignores normal file systems and only changes the root file system (i.e.  /), /usr, and the virtual kernel API file systems such as /proc, /sys or /dev. This service executes no operation if no configuration is found (/etc/fstab does not exist or lists no entries for the mentioned file systems, or the partition table does not contain relevant entries).

Если кратко, то этот сервис перемонтирует kernel API file system с праметрами монтирования прописанными в /etc/fstab. А в fstab у меня там стоит defaults на все EXT4:

# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=163F-8415                            /boot/efi      vfat    defaults,noatime 0 2
UUID=28db2689-8b7a-47eb-8549-545a23970c31 swap           swap    defaults,noatime 0 2
UUID=1dbd6634-368e-4ceb-9877-15f44639eeb8 /var           ext4    defaults,noatime 0 2
UUID=0593fbb8-4dd8-4fd1-9c20-7e59b520e3ee /              ext4    defaults,noatime 0 1
UUID=ae4ccbf7-ab32-4274-a1f0-33a811cbba11 /home          ext4    defaults,noatime 0 2

Получается, что этот сервис перемонтирует только корневую ФС, а мой home не трогает.

Остаётся для меня загадка, в каком режиме журналирования ФС на HOME сейчас находится. Больше нет никаких утилит, запросов в виртуальные ФС ядра (/sys/, /proc, что там еще?) сделать запрос и узнать?

dva20 ()
Последнее исправление: dva20 (всего исправлений: 1)
Ответ на: комментарий от anonymous

В процессе загрузки и эксплуатации системы смонтировать/перемонтировать сервисы могут много раз с разными опциями, только вот как узнать текущие значения или последнюю перемонтировку?

В man’е о дефолтных опциях сказано следующее

Some  of  these  options  could be enabled or disabled by default in the system kernel.  To check the current setting see the options in /proc/mounts.  Note that filesystems also have per-filesystem specific default mount options (see for example tune2fs -l output for extN filesystems).

Заглядываем в /proc/mounts:

cat /proc/mounts | grep mapper
/dev/mapper/vg01-root / ext4 rw,noatime 0 0
/dev/mapper/vg01-home /home ext4 rw,noatime 0 0
/dev/mapper/vg01-var /var ext4 rw,noatime 0 0

и тут тоже не ясно, есть ли журналирование, нет ли его и какой режим?

dva20 ()
Ответ на: комментарий от anonymous

Похоже на то, что это текущие опции:

cat /proc/fs/ext4/dm-3/options | grep data
data=ordered

Спасибо! Так было очевидно прошерстить этот каталог, но я почему-то пошёл не легким путём в начале ))) Ну да ладно… Спасибо всем ответившим!

dva20 ()
Ответ на: комментарий от dva20
cat /proc/fs/ext4/dm-3/options | grep data
data=ordered

Ну так хорошо, а дальше что? Как поменять на другой режим теперь?

Просто мы снова видим изначальный выхлоп:

[   14.243801] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
Gonzo ★★★★★ ()
Последнее исправление: Gonzo (всего исправлений: 1)
Ответ на: комментарий от Gonzo

Пока я разбирался что к чему, то сам «накрутил» и установил в суперблоке «journal», но не перезагрузился, так как это была точка монтирования - /home. Запутался вообщем в порядке своих действий, познаю так сказать азы 😄

Как только перезагрузился, всё пришло в соответствие, /home стал в режиме journal как и прописал его в суперблоке. Зато разобрался как это работает, и что если даже режим прописан в суперблоке, то это еще ничего не значит, в процессе загрузки ОС какой-нибудь сервис systemd может перемнтировать в ordered или что-то другое ))

Ну так хорошо, а дальше что? Как поменять на другой режим теперь?

На выбор, один из режимов ниже, и в /etc/fstab ничего не трогать, т.е. оставить опцию defaults:

sudo tune2fs -o journal_data /dev/sda1
sudo tune2fs -o journal_data_ordered /dev/sda1
sudo tune2fs -o journal_data_writeback /dev/sda1

Можно также в /etc/fstab прописать явно, вместо параметра defaults.

dva20 ()
Ответ на: комментарий от dva20

tune2fs


Ясно, спасибо.

какой-нибудь сервис systemd может перемнтировать в ordered или что-то другое


Блджад, как же он мне все-таки дорог, этот системд.

Gonzo ★★★★★ ()
Последнее исправление: Gonzo (всего исправлений: 2)