Mai lea taimi i lea taimi, ina ia mafai ona siitia atu i le Central Distribution Center, ou te faatalanoaina i kamupani tetele eseese, aemaise lava i St. Petersburg ma Moscow, mo se tulaga DevOps. Na ou matauina o le tele o kamupani (tele kamupani lelei, mo se faʻataʻitaʻiga Yandex) fai ni fesili tutusa se lua:
- o le a le inode;
- O a mafua'aga e mafai ai ona e maua se mea sese tusitusi tisiki (po'o se fa'ata'ita'iga: aisea e te le maua ai le avanoa o le tisiki, o le aano e tutusa).
E pei ona masani ona tupu, sa ou mautinoa sa ou iloa lelei lenei autu, ae o le taimi lava na amata ai ona ou faamatala atu, na aliali mai ni avanoa i le malamalama. Ina ia faʻatulagaina loʻu malamalama, faʻatumu avanoa ma aua le toe faʻasiasia aʻu, o loʻo ou tusia lenei tusiga, atonu o le a aoga i se isi tagata.
O le a ou amata mai le pito i lalo, i.e. mai se ta'avale malo (tatou te lafoaia ta'avale flash, SSDs ma isi mea fa'aonaponei; mo se fa'ata'ita'iga, se'i o tatou mafaufau i so'o se 20 po'o 80 gig ta'avale tuai, talu ai o le poloka poloka e 512 bytes).
E le iloa e le ta'avale malo pe fa'afefea ona fa'afeiloa'i lona avanoa byte i le byte; Fa'anumera poloka e amata mai le 0. (E ta'ua lea o le LBA, fa'amatalaga iinei:
E pei ona mafai ona vaʻaia mai le ata, na ou filifilia poloka LBA e avea ma tulaga HDD. I le auala, e mafai ona e vaʻai pe o le a le tele o poloka o lau disk e pei o lenei:
root@ubuntu:/home/serp# blockdev --getpbsz /dev/sdb
512
O le maualuga o loʻo i luga o se vaeluaga, tasi mo le tisiki atoa (toe faʻafaigofie). O le tele o taimi, e lua ituaiga o vaeluaga e faʻaaogaina: msdos ma gpt. O le mea lea, msdos o se faatulagaga tuai e lagolagoina tisiki e oo atu i le 2Tb, gpt o se faatulagaga fou e mafai ona tautala i luga o le 1 zettabyte o 512 byte poloka. I la matou tulaga, o loʻo i ai se vaeluaga o le ituaiga msdos, e pei ona mafai ona vaʻaia mai le ata, o le vaeluaga e amata i le poloka Numera 1, aʻo le zero e faʻaaogaina mo le MBR.
I le vaeluaga muamua na ou fatuina ai se faila faila ext2, o lona poloka poloka poloka o le 4096 bytes, lea e atagia mai foi i le ata. E mafai ona e vaʻai i le tele o poloka poloka faila e pei o lenei:
root@ubuntu:/home/serp# tune2fs -l /dev/sdb1
tune2fs 1.42.9 (4-Feb-2014)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: a600bf40-f660-41f6-a3e6-96c303995479
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 65536
Block count: 261888
Reserved block count: 13094
Free blocks: 257445
Free inodes: 65525
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 63
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Fri Aug 2 15:02:13 2019
Last mount time: n/a
Last write time: Fri Aug 2 15:02:14 2019
Mount count: 0
Maximum mount count: -1
Last checked: Fri Aug 2 15:02:13 2019
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Default directory hash: half_md4
Directory Hash Seed: c0155456-ad7d-421f-afd1-c898746ccd76
O le parakalafa matou te manaʻomia o le "Block size".
Le taimi nei o le vaega manaia o le auala e faitau ai le /home/serp/testfile file? O se faila e aofia ai se tasi pe sili atu poloka faila faila lea e teu ai ana faʻamatalaga. Iloa le igoa faila, fa'afefea ona maua? O fea poloka e tatau ona ou faitauina?
O le mea lea e aoga ai inodes. O le faila faila ext2fs o loʻo i ai se " laulau" o loʻo i ai faʻamatalaga mo inodes uma. Ole numera o inodes ile tulaga ole ext2fs ua seti pe a fatuina le faila faila. Matou te vaʻavaʻai i numera manaʻomia i le "Inode count" parakalafa o le tune2fs output, i.e. e 65536 matou vaega. O le inode o loʻo i ai faʻamatalaga matou te manaʻomia: o se lisi o poloka faila mo le faila o loʻo matou sailia. E faʻafefea ona maua le numera inode mo se faila tuʻuina atu?
O le igoa tutusa ma le numera inode o loʻo i totonu o le faʻatonuga, ma o se faʻamaumauga i ext2fs o se ituaiga faʻapitoa o faila, i.e. e iai fo'i lana lava numera inode. Ina ia talepeina lenei li'o leaga, o le "fa'amau" numera inode "2" na tu'uina atu i le a'a. Sei o tatou tilotilo i mea o loʻo i totonu o le inode numera 2:
root@ubuntu:/# debugfs /dev/sdb1
debugfs 1.42.9 (4-Feb-2014)
debugfs: stat <2>
Inode: 2 Type: directory Mode: 0755 Flags: 0x0
Generation: 0 Version: 0x00000000:00000002
User: 0 Group: 0 Size: 4096
File ACL: 0 Directory ACL: 0
Links: 3 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x5d43cb51:16b61bcc -- Fri Aug 2 16:34:09 2019
atime: 0x5d43c247:b704301c -- Fri Aug 2 15:55:35 2019
mtime: 0x5d43cb51:16b61bcc -- Fri Aug 2 16:34:09 2019
crtime: 0x5d43b5c6:00000000 -- Fri Aug 2 15:02:14 2019
Size of extra inode fields: 28
BLOCKS:
(0):579
TOTAL: 1
E pei ona mafai ona e vaʻaia, o le lisi matou te manaʻomia o loʻo i totonu o le poloka numera 579. I totonu o le a matou maua ai le numera o le node mo le faila o le fale, ma faʻasolo atu i lalo le filifili seia oʻo i le serp directory matou te vaʻaia le numera node mo le faila talosaga. Afai faʻafuaseʻi ona manaʻo se tasi e siaki pe saʻo le numera ma pe o iai faʻamatalaga talafeagai, e le faigata. Matou te faia:
root@ubuntu:/# dd if=/dev/sdb1 of=/home/serp/dd_image bs=4096 count=1 skip=579
1+0 records in
1+0 records out
4096 bytes (4,1 kB) copied, 0,000184088 s, 22,3 MB/s
root@ubuntu:/# hexdump -c /home/serp/dd_image
I le gaioiga e mafai ona e faitau i igoa o faila i totonu o le lisi.
O lea ua ou oo mai ai i le fesili autu: "o a mafuaaga e mafai ai ona tupu se mea sese?"
E masani lava, o le a tupu lenei mea pe a leai ni poloka saoloto e totoe i le faila faila. O le a se mea e mafai ona fai i lenei tulaga? E ese mai i le manino "aveese soʻo se mea e le manaʻomia", e tatau ona e manatua o le ext2,3 ma le 4 faila faila o loʻo i ai se mea e pei o le "Faʻamaumauga poloka poloka". Afai e te tilotilo i le lisi o loʻo i luga, o loʻo i ai a matou "13094" ia poloka. O poloka ia e na'o le tagata fa'aoga a'a e mafai ona tusia. ae afai e te manaʻomia le vave foia o le mataupu, o se fofo le tumau e mafai ona e faʻaavanoaina mo tagata uma, e maua ai se avanoa avanoa:
root@ubuntu:/mnt# tune2fs -m 0 /dev/sdb1
tune2fs 1.42.9 (4-Feb-2014)
Setting reserved blocks percentage to 0% (0 blocks)
O na. ona o le faaletonu, e te maua le 5% o le avanoa tisiki e le o avanoa mo le tusitusi, ma tuʻuina atu le tele o tisiketi faʻaonaponei, e mafai ona faitau selau gigabytes.
O le a se isi mea e ono iai? E mafai foʻi ona iai poloka e leai se totogi, ae leai ni nodes. E masani ona tupu lenei mea pe afai e iai sau faila faila i luga o lau faila faila e laʻititi nai lo le tele o poloka poloka faila. Mafaufau o le 1 inode e faʻaalu i le 1 faila poʻo le lisi, ma i le aofaʻi o loʻo i ai (mo se faila faila) 65536 - o le tulaga e sili atu nai lo le moni. E mafai ona iloa manino lenei mea mai le gaioiga o le df poloaiga:
serp@ubuntu:~$ df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 493K 480 492K 1% /dev
tmpfs 493K 425 493K 1% /run
/dev/xvda1 512K 240K 273K 47% /
none 493K 2 493K 1% /sys/fs/cgroup
none 493K 2 493K 1% /run/lock
none 493K 1 493K 1% /run/shm
none 493K 2 493K 1% /run/user
/dev/xvdc1 320K 4,1K 316K 2% /var
/dev/xvdb1 64K 195 64K 1% /home
/dev/xvdh1 4,0M 3,1M 940K 78% /var/www
serp@ubuntu:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2,0G 4,0K 2,0G 1% /dev
tmpfs 395M 620K 394M 1% /run
/dev/xvda1 7,8G 2,9G 4,6G 39% /
none 4,0K 0 4,0K 0% /sys/fs/cgroup
none 5,0M 0 5,0M 0% /run/lock
none 2,0G 0 2,0G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvdc1 4,8G 2,6G 2,0G 57% /var
/dev/xvdb1 990M 4,0M 919M 1% /home
/dev/xvdh1 63G 35G 25G 59% /var/www
E pei ona vaaia manino i luga o le / var / www partition, o le numera o poloka saoloto i le faila faila ma le numera o nodes saoloto e matua ese lava.
I le tulaga e te le maua ai ni inodes, ou te le taʻuina atu ia te oe ni sipela, aua ... e leai se mea (pe a ou sese, taʻu mai ia te aʻu). O lea la mo vaeluaga e faʻateleina faila laiti, e tatau ona e filifilia ma le poto le faila faila. Mo se faʻataʻitaʻiga, btrfs inodes e le mafai ona muta, aua O mea fou e fa'atupu fa'amalosi pe a mana'omia.
puna: www.habr.com