Почему не делает моего точно раздела на 100 мебибайт в размере блока на 1 кибибайт, имеют соответствующие доступные блоки/пространство?

Короткий ответ: Интернет не Прокладывает себе путь

Более длинный ответ: блоки IP-адреса аккуратно не разграничены на страну. Что касается IPv4, головная организация выделенная IANA (прошедшее время - они вне блоков), блоки адреса к различным NICs, которые работают в очень широких регионах, как Вы видите здесь. Они затем присваивают блоки IP ISPs на основе на случай в зависимости от того, что ISP говорит, что им будет нужно - и на том уровне, ISPs, с которыми они обычно торгуют, имеют тенденцию колебаться между границами.

Я не знаком с точными специфическими особенностями pf в противоположность Linux' iptables но я довольно уверен, что они оба работают на основе IP/netblock. Возможно, Вы могли массажировать базу данных геолокации для выкладывания списка всего netblocks, это почти бесспорно, эксклюзивны в одну страну или другого, но я не держал бы пари на нем.

На более циничной ноте Вы могли бы хотеть попросить у иранских или китайских правительств совета относительно того, как они пытаются обработать его, но я не поддержал бы ни одного из них как образцы для подражания для надлежащего использования Интернета...

33
22.02.2015, 10:48
3 ответа

Попробуйте это: mkfs.ext4 -n 104 -M0 -O ^ has_journal, ^ resize_inode / dev / purgatiatory / test1

Я думаю, что это позволяет вам понять "что продолжается".

-N 104 (Установите количество файловой системы INODES)

  • Каждый inode «затраты» Пригоднее пространство (128 байт)

-M 0 ( Без зарезервированных блоков)
-O ^ has_journal, ^ resize_inode (деактивировать функции as_journal и RESIZE_INODE

  • RESIZE_INODE «Стоимость» Пространство (большая часть 1550 1K-блоков / 2% вы видите в вашем DF - 12k используются для папки «Утерянные + найденные»)
  • HAS_JOURNAL «Стоимость» Пространство (4096 1k-блоки в вашем случае)

Мы получаем 102348 , из , еще 102400 , еще 52 блока непригодных (если мы удалили «потерянные + найденные» Папка). Поэтому мы погрузимся в dumpe2fs :

Group 0: (Blocks 1-8192) [ITABLE_ZEROED]
  Checksum 0x5ee2, unused inodes 65533
  Primary superblock at 1, Group descriptors at 2-2
  Block bitmap at 3 (+2), Inode bitmap at 19 (+18)
  Inode table at 35-35 (+34)
  8150 free blocks, 0 free inodes, 1 directories, 65533 unused inodes
  Free blocks: 17-18, 32-34, 48-8192
  Free inodes: 
Group 1: (Blocks 8193-16384) [BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x56cf, unused inodes 5
  Backup superblock at 8193, Group descriptors at 8194-8194
  Block bitmap at 4 (+4294959107), Inode bitmap at 20 (+4294959123)
  Inode table at 36-36 (+4294959139)
  8190 free blocks, 6 free inodes, 0 directories, 5 unused inodes
  Free blocks: 8193-16384
  Free inodes: 11-16
Group 2: (Blocks 16385-24576) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x51eb, unused inodes 8
  Block bitmap at 5 (+4294950916), Inode bitmap at 21 (+4294950932)
  Inode table at 37-37 (+4294950948)
  8192 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 16385-24576
  Free inodes: 17-24
Group 3: (Blocks 24577-32768) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x3de1, unused inodes 8
  Backup superblock at 24577, Group descriptors at 24578-24578
  Block bitmap at 6 (+4294942725), Inode bitmap at 22 (+4294942741)
  Inode table at 38-38 (+4294942757)
  8190 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 24577-32768
  Free inodes: 25-32
Group 4: (Blocks 32769-40960) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x79b9, unused inodes 8
  Block bitmap at 7 (+4294934534), Inode bitmap at 23 (+4294934550)
  Inode table at 39-39 (+4294934566)
  8192 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 32769-40960
  Free inodes: 33-40
Group 5: (Blocks 40961-49152) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x0059, unused inodes 8
  Backup superblock at 40961, Group descriptors at 40962-40962
  Block bitmap at 8 (+4294926343), Inode bitmap at 24 (+4294926359)
  Inode table at 40-40 (+4294926375)
  8190 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 40961-49152
  Free inodes: 41-48
Group 6: (Blocks 49153-57344) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x3000, unused inodes 8
  Block bitmap at 9 (+4294918152), Inode bitmap at 25 (+4294918168)
  Inode table at 41-41 (+4294918184)
  8192 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 49153-57344
  Free inodes: 49-56
Group 7: (Blocks 57345-65536) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x5c0a, unused inodes 8
  Backup superblock at 57345, Group descriptors at 57346-57346
  Block bitmap at 10 (+4294909961), Inode bitmap at 26 (+4294909977)
  Inode table at 42-42 (+4294909993)
  8190 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 57345-65536
  Free inodes: 57-64
Group 8: (Blocks 65537-73728) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xf050, unused inodes 8
  Block bitmap at 11 (+4294901770), Inode bitmap at 27 (+4294901786)
  Inode table at 43-43 (+4294901802)
  8192 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 65537-73728
  Free inodes: 65-72
Group 9: (Blocks 73729-81920) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x50fd, unused inodes 8
  Backup superblock at 73729, Group descriptors at 73730-73730
  Block bitmap at 12 (+4294893579), Inode bitmap at 28 (+4294893595)
  Inode table at 44-44 (+4294893611)
  8190 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 73729-81920
  Free inodes: 73-80
Group 10: (Blocks 81921-90112) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x60a4, unused inodes 8
  Block bitmap at 13 (+4294885388), Inode bitmap at 29 (+4294885404)
  Inode table at 45-45 (+4294885420)
  8192 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 81921-90112
  Free inodes: 81-88
Group 11: (Blocks 90113-98304) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0x28de, unused inodes 8
  Block bitmap at 14 (+4294877197), Inode bitmap at 30 (+4294877213)
  Inode table at 46-46 (+4294877229)
  8192 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 90113-98304
  Free inodes: 89-96
Group 12: (Blocks 98305-102399) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x9223, unused inodes 8
  Block bitmap at 15 (+4294869006), Inode bitmap at 31 (+4294869022)
  Inode table at 47-47 (+4294869038)
  4095 free blocks, 8 free inodes, 0 directories, 8 unused inodes
  Free blocks: 98305-102399
  Free inodes: 97-104

и подсчитать используемые блоки (для резервного суперблока, групповых дескрипторов, блокировать растровое изображение, inode bitmap и inode) или мы GREP Счет:

LANG=C dumpe2fs /dev/mapper/vg_vms-test1 | grep ' at ' | grep -v ',' | wc -l

, который дает нам количество строк, которые имеют один блок (на нашем экзамене Ple) и

LANG=C dumpe2fs /dev/mapper/vg_vms-test1 | grep ' at ' | grep ',' | wc -l

, который дает нам количество линий, которые имеют два блока (в нашем примере).

Итак, у нас есть (в нашем примере) 13 строк с одним блоком каждый и 19 линий с двумя блоками каждый.

13+19*2

, что дает нам 51 блоки, которые используются самим EXT4. Наконец, осталось только один блок. Блок 0, который пропущен 1024 байты в начале для вещей, таких как загрузочный сектор.

32
27.01.2020, 19:37

Короткий ответ:

Не все пространство на блочном устройстве становится доступным пространством для ваших данных: Некоторые из необработанного пространства необходимо для внутренних средств файловых систем, озади.

Этот бухгалтерский учет включает в себя суперблоки, дескрипторы группы блоков, блок и неиспользуемые растровые изображения и таблица INODE. Кроме того, копии суперблока для целей резервного копирования / восстановления создаются на ряд мест. Долгое чтение о внутренних интерналах ext4 файловой системы можно найти на Ext4.wiki.kernel.org .

Поскольку ext4 - это журнальная файловая система, которая также занимает некоторое пространство.

Дополнительно некоторое пространство зарезервировано для будущих расширений файловой системы.

Долгий ответ:

Я воссоздал свой сценарий на одном из моих тестовых систем:

lvcreate -L 100M -n test MyVG
mkfs.ext4 -b 1024 /dev/MyVG/test 

, затем, прежде чем даже монтировать файловую систему A Summpe2FS :

Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              25688
Block count:              102400
Reserved block count:     5120
Free blocks:              93504
Free inodes:              25677
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         1976
Inode blocks per group:   247
Flex block group size:    16
Filesystem created:       Fri Feb 20 13:20:54 2015
Last mount time:          n/a
Last write time:          Fri Feb 20 13:20:55 2015
...
Journal size:             4096k  
...

и после монтажа:

df /tmp/test/
Filesystem              1K-blocks  Used Available Use% Mounted on
/dev/mapper/MyVG-test       99150  5646     88384   7% /tmp/test

Так что делает DF . Из 102400 блоков необработанного устройства устройства емкость 99150 1K блоки видны в файловой системе, что означает, что 3250 1-килобайтные блоки необработанного места для хранения неиспользуются для фактического хранения данных.

Где эти блоки отправлялись? Прокрутка вниз в режиме выхода выхода , которые точно показывают, где:

Group 0: (Blocks 1-8192) [ITABLE_ZEROED]
  Checksum 0x0d67, unused inodes 1965
  Primary superblock at 1, Group descriptors at 2-2
  Reserved GDT blocks at 3-258
  Block bitmap at 259 (+258), Inode bitmap at 275 (+274)
  Inode table at 291-537 (+290)
  4683 free blocks, 1965 free inodes, 2 directories, 1965 unused inodes
  Free blocks: 3510-8192
  Free inodes: 12-1976

1 блок (блок № 0). Первые 1024 байта пропускаются, чтобы обеспечить установку секторов загрузки x86 и других странностей.
1 блок занят первичным суперблоком.
1 блок содержит групповые дескрипторы.
256 блоков зарезервированы для таблицы дескриптора группы , чтобы позволить будущее изменение размера файловой системы. 16 блоков назначается для блока BITMAP.
16 блоков назначается для inode bitmap.
246 блоков назначается для таблицы INODE.

Это уже составляет 537 из 3250 недостающих блоков. Файловая система EXT4 разделена на серию блочных групп и прокручивает дальше, показывает аналогичное распределение грузоподъемности необработанного хранения к внутренним интерналам файловой системы в других группах блоков:

Group 1: (Blocks 8193-16384) [INODE_UNINIT, ITABLE_ZEROED]
  Checksum 0x0618, unused inodes 1976
  Backup superblock at 8193, Group descriptors at 8194-8194
  Reserved GDT blocks at 8195-8450
  Block bitmap at 260 (+4294959363), Inode bitmap at 276 (+4294959379)
  Inode table at 538-784 (+4294959641)
  7934 free blocks, 1976 free inodes, 0 directories, 1976 unused inodes
  Free blocks: 8451-16384
  Free inodes: 1977-3952
Group 2: (Blocks 16385-24576) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xcfd3, unused inodes 1976
  Block bitmap at 261 (+4294951172), Inode bitmap at 277 (+4294951188)
  Inode table at 785-1031 (+4294951696)
  8192 free blocks, 1976 free inodes, 0 directories, 1976 unused inodes
  Free blocks: 16385-24576
  Free inodes: 3953-5928 
Group ....

Теперь вернуться к выходу DF :

df /tmp/test/
Filesystem              1K-blocks  Used Available Use% Mounted on
/dev/mapper/MyVG-test       99150  5646     88384   7% /tmp/test

Причина того, что на этой свежей файловой системе уже 7% мощности помечается как в использовании, является:

99150 (размер файловой системы) минус 5120 (зарезервированный подсчет блока) минус 5646 Используемые блоки, 4096 из которых являются из журнала (опять же часть производства dumpe2fs))
= 88384

Количество свободного блока в Datue2FS - это доступный размер файловой системы минус фактическое использование (и не принимает во внимание зарезервированные блоки)SO 99150 - 5646 = 93504.

19
27.01.2020, 19:37

Не ответ на вопрос, но мне стало любопытно, так что я представляю, что это сделают другие люди. Так как у меня уже был загружаемый liveCD, и у меня был жесткий диск, с которым я мог связываться, не беспокоясь о том, что опечатки что-нибудь повредят, я пошёл дальше и протестировал.

Я сделал разделы со всеми FSes, для которых Ubuntu 14.10 поставляет mkfs, на 100MiB разделах. (за исключением minix, который поддерживает только 64MiB, и bfs, о которых я никогда не слышал)

Сначала я посмотрел на df -k доступное пространство (с настройками mkfs по умолчанию), затем я dded /dev/zero в файл на каждой ФС, чтобы быть уверенным, что их можно заполнить до конца. (т.е. проверить, действительно ли заявленное доступное пространство было доступно)
для i в /media/ubuntu/small-*; do sudo dd if=/dev/zero of="$i/fill" bs=16k;done

* FS: empty `df -k` : non-zero `df -k` when full (false bottom)
* jfs:  101020k
* fat32:100808k  : 4
* ntfs:  99896k
* btrfs: 98276k  : 4428
* ext2:  92480k
* xfs:   90652k  : 20
* ext4:  86336k
* ext3:  88367k
* reiserfs(v3): 69552k

Почему в btrfs так много неиспользуемого пространства? Может быть, для метаданных? ну нет:

$ for i in /media/ubuntu/small-*;do sudo touch "$i/touched";done
touch: cannot touch ‘/media/ubuntu/small-btrfs/touched’: No space left on device
touch: cannot touch ‘/media/ubuntu/small-reiser/touched’: No space left on device

Обе файловые системы на основе деревьев нигде не могут упаковать пустой файл, но все остальные могут.

Или просто посмотрите, какой большой файл вы можете создать:

$ ls -SdlG --block-size=1k /media/ubuntu/small-*/*
-rw-r--r-- 1 root   101020 Feb 21 11:55 /media/ubuntu/small-jfs/fill
-rw-r--r-- 1 ubuntu 100804 Feb 21 11:55 /media/ubuntu/small-fat/fill
-rw------- 1 ubuntu  99848 Feb 21 11:55 /media/ubuntu/small-ntfs/fill
-rw-r--r-- 1 root    97216 Feb 21 11:55 /media/ubuntu/small-ext2/fill
-rw-r--r-- 1 root    93705 Feb 21 11:27 /media/ubuntu/small-btrfs/foo
-rw-r--r-- 1 root    93120 Feb 21 11:55 /media/ubuntu/small-ext3/fill
-rw-r--r-- 1 root    91440 Feb 21 11:55 /media/ubuntu/small-ext/fill
-rw-r--r-- 1 root    90632 Feb 21 11:55 /media/ubuntu/small-xfs/fill
-rw-r--r-- 1 root    69480 Feb 21 11:55 /media/ubuntu/small-reiser/fill
drwx------ 2 root       12 Feb 21 11:33 /media/ubuntu/small-ext2/lost+found
drwx------ 2 root       12 Feb 21 11:43 /media/ubuntu/small-ext3/lost+found
drwx------ 2 root       12 Feb 21 11:29 /media/ubuntu/small-ext/lost+found

(Я назвал свой ext4 раздел "smallext", потому что не собирался сходить с ума и делать каждую файловую систему. так что ext=ext4 здесь. НЕ оригинальный pre-ext2 ext.)

А df -k вывод после их удаления снова:

/dev/sdd6          95980    5328     90652   6% /media/ubuntu/small-xfs
/dev/sdd7          95054    1550     86336   2% /media/ubuntu/small-ext
/dev/sdd5         102400   93880    101020  96% /media/ubuntu/small-btrfs
/dev/sdd8         101168  101168         0 100% /media/ubuntu/small-jfs
/dev/sdd9          99150    1550     92480   2% /media/ubuntu/small-ext2
/dev/sdd10        102392   32840     69552  33% /media/ubuntu/small-reiser
/dev/sdd11        100808       1    100808   1% /media/ubuntu/small-fat
/dev/sdd12        102396    2548     99848   3% /media/ubuntu/small-ntfs
/dev/sdd13         95054    1567     88367   2% /media/ubuntu/small-ext3

(jfs вернулся к 1% используемому после того, как я удалил "touched". Либо была задержка по времени, либо потребовалась ещё одна запись, чтобы получить доступный размер для обновления)

В любом случае, я думаю, что это всё для моего любопытства.

0
27.01.2020, 19:37

Теги

Похожие вопросы