Fórum Root.cz

Hlavní témata => Desktop => Téma založeno: eva46 01. 12. 2021, 07:10:02

Název: Linux využití disku
Přispěvatel: eva46 01. 12. 2021, 07:10:02
Zdravím, přešla jsem kvůli konci podpory mého notebooku na Linux a řeším problém s množstvím místa na datovém disku. 1TB disk by měl mít z výroby 931GB. Tolik místa bylo i využitelné pod NTSF. Tento disk /dev/sdb1 jsem přidala do fstab, aby se mountoval automaticky po startu. Jeho maximální velikost např. v Thunaru, nebo df utilitě je však jen 916GB. Formátováno bylo pomocí gparted, kde to i ukazovalo správně velikost 931GB, ale ihned po naformátování, kdy měl být disk úplně prázdný, to ukazovalo využitých 15GB. Dokázal by mi někdo vysvětlit, co to má být a jak nejlépe docílit využití maxima? Může to být swap? Ten je nastaven do souboru, ale čekala bych, že bude jen na /dev/sda1.

Už se mi povedlo i najít, že Linux by default rezervuje 5% místa pro roota. To už je pořešeno. Ono to taky dělalo skoro 50GB.
Název: Re:Linux využití disku
Přispěvatel: _Jenda 01. 12. 2021, 07:26:33
df defaultně ukazuje v debilních jednotkách (tvrdí že v GB, ale přitom jsou to GiB). Na GB se to přepne -H.

Dále dej fdisk -l, případně otisk obrazovky cfdisk /dev/sdx, jestli je třeba jako partition přes celý disk, a výpis df -H, a taky si to zkus proklikat v ncdu.
Název: Re:Linux využití disku
Přispěvatel: eva46 01. 12. 2021, 07:32:52
Pošlu odpoledne, až se dostanu k PC, ale df bylo s -h přepínačem. Už úplně z hlavy nevím, které všechny utility byly vyzkoušeny, ale snad vše, mimo ten gparted, hlásilo 916GB. Jakoby to snad bylo blbě naformátované na max velikost 916. Pro jistotu to odpoledne ověřím a pošlu případně screeny. cfdisk jsem nezkoušela, třeba ten to rozlouskne. Díky.
Název: Re:Linux využití disku
Přispěvatel: _Jenda 01. 12. 2021, 07:48:15
ale df bylo s -h přepínačem.
No právě.
Název: Re:Linux využití disku
Přispěvatel: vcunat 01. 12. 2021, 08:12:59
df defaultně ukazuje v debilních jednotkách (tvrdí že v GB, ale přitom jsou to GiB). Na GB se to přepne -H.

1 TB = 931 GiB.  Tehle předpoklad tedy byl zahrnut už zpočátku dotazu.

O tomhle se hádat rozhodně nechci, ale za debilní to nepovažuji.  Místo na disku se stále alokuje po blocích velikosti nějaké mocniny dvojky (4096 aj.)
Název: Re:Linux využití disku
Přispěvatel: _Jenda 01. 12. 2021, 08:39:03
Místo na disku se stále alokuje po blocích velikosti nějaké mocniny dvojky (4096 aj.)
Na některých vrstvách (například na SSD které ukládá 3 bity do buňky ne, a navíc tam jsou různé úrovně error correction) a nevím proč by mě to jako uživatele mělo zajímat.

Jinak u toho df je například taky potřeba zjistit, jestli to ukazuje 916 GB kapacitu nebo free (třeba když má root rezervované místo, tak to IIRC vypadá tak, že to ukazuje kapacitu plnou, ale uživateli méně free, takže used + free < kapacita).

No a pak by se ještě možná dalo koukat do dumpe2fs v krajní nouzi.
Název: Re:Linux využití disku
Přispěvatel: František Ryšánek 01. 12. 2021, 10:47:13
Wikipedia má ohledně binárních a desítkových mega/giga/tera docela obsáhlé heslo (https://en.wikipedia.org/wiki/Binary_prefix#Deviation_between_powers_of_1024_and_powers_of_1000) - odkaz je na názornou tabulku.

Pro rozpitvání mohu doporučit:

Kód: [Vybrat]
### Celé blokové zařízení

# v bajtech:
blockdev --getsize64 /dev/sdb

# v sektorech o velikosti 512B:
blockdev --getsz /dev/sda

# viz též
blockdev --help

smartctl -a /dev/sdb

### Rozdělení disku na oddíly (nástrojů typu fdisk je spousta)

# human readable
sfdisk -l /dev/sdb

# machine readable
sfdisk -d /dev/sdb

### Jaký je na kýženém oddílu souborový systém?
dumpe2fs -h /dev/sdb1
ntfsinfo /dev/sdb1

### Volné a obsazené místo v souborových systémech / stromech adresářů

# volné místo v blocích o velikosti 1k (nevím jestli binární nebo dekadické) per mountpoint
df

# místo zabrané soubory a adresáři, stromově, neomezená hloubka
du

# omezit hloubku na jedno patro
du -d 1

# soubory s tečkou na začátku jména jsou skryté.
ls -a
ls -al


Zmíněné programy jsou z následujících balíčků:
blockdev : util-linux
smartctl : smartmontools
sfdisk : util-linux
dumpe2fs : e2fsprogs
ntfsinfo : ntfs-3g
Název: Re:Linux využití disku
Přispěvatel: František Ryšánek 01. 12. 2021, 12:38:25
Ještě mě napadá, že takový GParted má hezké GUI, kde jsou všechny informace v kostce, včetně volného místa za koncem posledního oddílu a volného místa per oddíl (tzn. uvnitř filesystémů).

EDIT aha, tazatelka GParted použila jako první...
Název: Re:Linux využití disku
Přispěvatel: František Ryšánek 01. 12. 2021, 12:49:42
...našel jsem dost podrobnou analýzu (https://serverfault.com/questions/354490/where-did-the-free-space-go) ze které plyne, že v případě Ext2/3/4 jde o úhrn několika druhů režijních bloků využívaných filesystémem pro vlastní potřebu. "Reserved block count" ve výstupu dumpe2fs. Namátkou koukám na jeden zaplněný filesystém o velikosti 1.5 TB a tahle režie je asi 70 GB (snad to interpretuju správně).
Název: Re:Linux využití disku
Přispěvatel: RDa 01. 12. 2021, 13:10:16
Muzu potvrdit, ze sezrane misto na ext je relativne velke (radove desitky GB na nekolikaterovem zarizeni), a zavisi od poctu inodes pri mkfs. Defaultne je tam nesmyslne velke cislo, a rucne to upravit lze jenom na mensi ale porad nesmyslne cislo - v podstate je pocet inodu na grupu ma fixni minimum (grupa obsahuje bitmapu+inody), a pocet grup zavisi od kapacity.

Takze je tam procentualne nejake misto rezervovano pro struktury FS.
Dalsi misto sezerou treba adresare, ale to je rekneme zanedbatelne v pomeru k realnym datum.

With the default options, every 128mb of disk gets 2 mb ( 8192 x 256 bytes each ) of inodes, or 1.6% overhead.
https://serverfault.com/questions/282317/disk-space-overhead-in-ext4

Problemem je to, 128MB pro grupu je maximum na 4K clusterech (blocich) a reseni by bylo prejit na 64K bloky jedine, viz:
https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Blocks
Název: Re:Linux využití disku
Přispěvatel: František Ryšánek 01. 12. 2021, 15:15:56
@RDa právě jsem po létech pochopil, proč mkfs.ext3 vždycky tak trvá a generuje tolik IOps na disky :-) Pokud se nepletu, mkfs.ext4 se vrátí v shellu rychleji, ale inicializace metadat pokračuje na pozadí (tipnu si, že ji dotáhne nějaký kthread).
Název: Re:Linux využití disku
Přispěvatel: RDa 01. 12. 2021, 15:20:45
@RDa právě jsem po létech pochopil, proč mkfs.ext3 vždycky tak trvá a generuje tolik IOps na disky :-) Pokud se nepletu, mkfs.ext4 se vrátí v shellu rychleji, ale inicializace metadat pokračuje na pozadí (tipnu si, že ji dotáhne nějaký kthread).

Ano, na ext4 se to jmenuje: lazy_itable_init[= <0 to disable, 1 to enable>]

If  enabled  and the uninit_bg feature is enabled, the inode table will not be fully initialized by mke2fs.  This speeds up file system  initialization noticeably, but it requires the kernel to finish initializing the file system in the background when the file system is first mounted.  If the option value is omitted, it defaults to 1 to enable lazy inode table zeroing.

Objevil jsem to taky nahodou - kdyz jsem se divil proc blika namounteny prazdny disk - prvni bylo tedy leknuti, ze me nekdo vycucava data :-)
Název: Re:Linux využití disku
Přispěvatel: eva46 01. 12. 2021, 16:45:20
Díky všem za tipy. Zde jsou výpisy z konzole:
Kód: [Vybrat]
df -H
Souborový systém Velikost Užito Volno Uži% Připojeno do
/dev/sdb1            984G  938G   47G  96% /media/data

Kód: [Vybrat]
df
Souborový systém Velikost Užito Volno Uži% Připojeno do
/dev/sdb1            916G  873G   44G  96% /media/data

Kód: [Vybrat]
sudo fdisk -l /dev/sdb1
Disk /dev/sdb1: 931,51 GiB, 1 000 203 091 968 bajtů, 1 953 521 664 sektorů
Jednotky: sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 4096 bajtů
Velikost I/O (minimální/optimální): 4096 bajtů / 4096 bajtů

Podle příspěvků, co tu padly, to tedy vypadá jen na tu režii filesystému? df -H ukazuje 984, místo 1000, ale fdisk už správně v GiB.
Název: Re:Linux využití disku
Přispěvatel: František Ryšánek 01. 12. 2021, 20:11:33
Podle příspěvků, co tu padly, to tedy vypadá jen na tu režii filesystému?

Kód: [Vybrat]
dumpe2fs -h /dev/sdb1 | grep 'Reserved block count'
Název: Re:Linux využití disku
Přispěvatel: eva46 01. 12. 2021, 21:21:13
To vrací 0. Ale to už jsem psala, že defaultní reservaci 5% místa pro roota jsem vypnula. Můj problém se vlastně projevil tak, že disk, původně zformátovaný NTFS obsahoval nějaká data. To se přepláclo ext4 a data zpět kopírovala z externího disku. No posledních pár souborů už se nevlezlo, i když původně bylo cca 50GB volných. Tak jsem to začala řešit. 5% pro roota je pořešených, pořád ale nechápu to 916 vs 931, když každá utilita hlásí něco jiného  :-[
Název: Re:Linux využití disku
Přispěvatel: johanson14 01. 12. 2021, 22:00:38
Zformátovaním s5 na NTFS by mohlo pomôcť tak, aby tam tých niekoľko súborov znova vliezlo keď riešite 916 vs 931. Pochopte, že iný súborový systém má aj iné nároky na využité miesto.
Název: Re:Linux využití disku
Přispěvatel: František Ryšánek 01. 12. 2021, 23:51:21
Vrací nula? Z toho jsem daněk.
Toto se netýká "pěti procent pro roota" = bezpečnostní rezerva, aby se FS nealokoval na 100%, čímž by přestal být provozuschopný.
Toto by měla být skutečně ta "režie" různých metadat pro inody a inode groups.
Název: Re:Linux využití disku
Přispěvatel: Jan Fikar 02. 12. 2021, 08:20:21
Ten pevný počet inode je dost velká nevýhoda extX souborových systémů. Když si uděláte málo inode a máte moc-moc-moc malých souborů, může se stát, že nový soubor už nezapíšete, i když místo je. Ty inode samozřejmě zabírají místo.

Pokud tedy víte, že na disku budou jen velké soubory, jde při formátování použít mkfs.ext4 -T largefile nebo dokonce mkfs.ext4 -T largefile4, což udělá míň inode a bude víc místa. Vysvětlení je v /etc/mke2fs.conf.

Daleko lepší využití místa na disku a také dynamickou alokaci inode má XFS, takže mkfs.xfs
Název: Re:Linux využití disku
Přispěvatel: eva46 07. 12. 2021, 20:57:10
Díky všem za rady a podnětnou diskusi, až na některé. Opravdu jsem se nikoho nechtěla dotknout položením otázky na vysvětlení, kam se ztratilo 15GB místa a vracet se k NTFS není odpověď, kterou tu bylo nutné v rozčílení psát.

Dnes jsem zkusila btrfs, který má režii menší. Zřejmě jej tedy na tom datovém HDD nechám.