Portál AbcLinuxu, 8. května 2025 00:37
[ 2.798791] sd 1:0:0:0: [sdb] Host-aware zoned block device [ 3.002422] sd 1:0:0:0: [sdb] 15628053168 512-byte logical blocks: (8.00 TB/7.28 TiB) [ 3.002427] sd 1:0:0:0: [sdb] 4096-byte physical blocks [ 3.002430] sd 1:0:0:0: [sdb] 29808 zones of 524288 logical blocks + 1 runt zone [ 3.002476] sd 1:0:0:0: [sdb] Write Protect is off [ 3.002481] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 3.002553] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 3.256847] sdb: sdb1 [ 3.256855] sdb: p1 start 2048+15628051087 is not zone aligned [ 3.462397] sd 1:0:0:0: [sdb] Attached SCSI diskPodle toho to vypadá, že ta partition existuje, stejně tak fdisk: # fdisk -l /dev/sdb
Disk /dev/sdb: 7.3 TiB, 8001563222016 bytes, 15628053168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 4E2D8B5A-3B7C-4D97-8B53-DAAE54488587 Device Start End Sectors Size Type /dev/sdb1 2048 15628053134 15628051087 7.3T Linux filesystemPodpora btrfs v jádře je, přidal jsem ho i do initrd. Ale stejně nechápu, proč tam to sdb1 není, když ho driver vidí.
Řešení dotazu:
/dev/sdbX
, tak čo vypíše príkaz partprobe -s /dev/sdb
a ako je pripojený /dev
o ktorý by sa mal starať udev
?
/dev/sdb: gpt partitions 1# mount | grep /dev\
udev on /dev type devtmpfs (rw,nosuid,relatime,size=3539252k,nr_inodes=884813,mode=755)udev zjevně funguje, protože druhý disk je OK # ls -1 /dev/sd*
/dev/sda /dev/sda1 /dev/sdb
gdisk -l /dev/sdb
.
GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sdb: 15628053168 sectors, 7.3 TiB Model: ST8000AS0022-1WL Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): BA9D1630-1222-7546-8868-614C9928EE60 Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 15628053134 Partitions will be aligned on 2048-sector boundaries Total free space is 2021 sectors (1010.5 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 15628053127 7.3 TiB 8300
Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem) Partition unique GUID: 84C23CE4-EA34-0541-AFDC-55EB43B216C5 First sector: 2048 (at 1024.0 KiB) Last sector: 15628053127 (at 7.3 TiB) Partition size: 15628051080 sectors (7.3 TiB) Attribute flags: 0000000000000000 Partition name: ''Ale původní UUID ve fstab mám:
e43cc284-34ea-4105-afdc-55eb43b216c5To číslo je nějak jinak indiánové nebo co... nemůže to s tím souviset?
Vůbec nezáleží na velkých nebo malých písmenech. Tazatel se ptal na tu (na první pohled překvapivou) změnu pořadí bytů (mixed endian), což ovšem u GPT není nijak překvapivé; tak to prostě je. Už jsem to citoval níže, ale ještě jednou pro úplnost:
… The GUIDs in this table are written as per RFC 4122, i.e. big-endian byte order, recognizable by the position of the version bits. For example, the GUID for an EFI System partition (C12A7328-F81F-11D2-BA4B-00A0C93EC93B), when serialized in GPT data structures (little-endian), corresponds to the hex sequence 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B. The first three blocks are byte-swapped to little-endian, the last is a byte array. …
losetup -v -f -o xxx /dev/sdbOffset xxx se spočítá z výstupu fdisku - přepočet ze sektorů na bytes. Řešení to ale není, nechce se mi překopírovávat data a znovu formátovat - je toho přes 6T. PS: třeba mě nazvete lamou a BFU, ale btrfs mi nesmí do baráku - sem zase chtěl jít s dobou. Tohle se mi nestalo za celých 20 let s XFS a extX.
[ 3.256855] sdb: p1 start 2048+15628051087 is not zone alignedby mohlo hrat roli?
pro 27 15:28:35 dnopytle kernel: sd 5:0:0:0: [sdg] 15628053168 512-byte logical blocks: (8.00 TB/7.28 TiB) pro 27 15:28:35 dnopytle kernel: sd 5:0:0:0: [sdg] 4096-byte physical blocks pro 27 15:28:35 dnopytle kernel: sd 5:0:0:0: [sdg] Write Protect is off pro 27 15:28:35 dnopytle kernel: sd 5:0:0:0: [sdg] Mode Sense: 00 3a 00 00 pro 27 15:28:35 dnopytle kernel: sd 5:0:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA pro 27 15:28:35 dnopytle kernel: sd 5:0:0:0: [sdg] Attached SCSI diskNení tam nic o zónových záležitostech, takže asi nemám SMD disk, protože z Archu mám dosti nové jádro 5.4.6 a je možné, že přístup k zonovým věcem se změnil mezi jádry z 16 a 18 buntu.
PS: třeba mě nazvete lamou a BFU, ale btrfs mi nesmí do baráku - sem zase chtěl jít s dobou. Tohle se mi nestalo za celých 20 let s XFS a extX.
Prosím nešiř tady takový nesmyslný FUD. Tenhle problém nemá nic společného s Btrfs. (Kdyby se tohle stalo s oddílem s Ext4, sváděl bys to potom na Ext4? (Tipuju, že ne. Takže, nač ten dvojí metr?))
Souborový systém přece nemá žádnou kontrolu nad tím, co jsi udělal s tabulkou oddílů v nějakém starém Ubuntu, nebo nad tím, jestli ten oddíl máš nastavený jako hidden nebo něco podobně exotického, jestli sis náhodou nenastavil ignorování toho oddílu v udev
pravidlech atd. atp.
Co říká udevadm monitor
během připojování toho disku?
Když už máš možnost přečíst a zazálohovat tabulku GPT s přesnými hranicemi oddílů, co takhle zkusit celou tabulku smazat a znova vytvořit? Čistě jen tak pro ujištění, že v ní není nic špatného či neobvyklého. Ale rozhodně bych napřed zkusil udevadm monitor
a udev
obecně.
Pokud jde o UUID toho oddílu a pořadí bytů, stačí jenom nahlédnout do Wikipedie:
… The GUIDs in this table are written as per RFC 4122, i.e. big-endian byte order, recognizable by the position of the version bits. For example, the GUID for an EFI System partition (C12A7328-F81F-11D2-BA4B-00A0C93EC93B), when serialized in GPT data structures (little-endian), corresponds to the hex sequence 28 73 2A C1 1F F8 D2 11 BA 4B 00 A0 C9 3E C9 3B. The first three blocks are byte-swapped to little-endian, the last is a byte array. …
Prý jsi chtěl jít s dobou… V roce 2019? Jo, kdybys používal Btrfs třeba v roce 2009, tenkrát bys možná šel s dobou. Dnes bych nutnou samozřejmost (tj. souborový systém s checksumy, RAIDem a copy-on-write) neoznačoval termínem "jít s dobou".
(Nedá se nic dělat; pro některé uživatele je ExtX se svým designem z 90. let (pro disky o velikosti jednotek GB), s absencí datových checksumů, snapshotů i RAIDu a se silent data corruption pořád jaksi záhadně atraktivní.)
Jo, máš pravdu... vlastně ve všem až na tu poznámku o "jít s dobou" s kterou by se dalo polemizovat... ale to je fakt mimo téma. Souhlasím, že btrfs za to nemůže (a ani nemůže moct) a byl to můj frustrovaný výlev a reakce na něco co nechápu.
Zkouším to na úplně nové instalaci ubuntu 18.04, takže žádný ignore tam nebude...
...rozhodně bych napřed zkusil udevadm monitor a udev obecně.
Neumím ten disk připojit jinak než přes tu berličku s loop device, takže se v udev nic kolem té neexistující partition nehne. Mohl bys naznačit, jak to mám zkusit? Zapnul jsem akorát logování udev při bootu a zde je výsledek
Zkusil sem i udělat novou prázdnou partition table v gfisku (přes "o" a "n") a v ní znovu tu samou partition (jen trochu delší) a chová se to stejně. Ty GUID jsem netušil - měl sem strach, že to může souviset.
Finally, if a partition start sector is not at the beginning of a
sequential zone, it will be impossible to write to the first sectors of the
partition on a host-managed device.
Avoid all these problems and incoherencies by ignoring partitions that are not
zone aligned.
tvoj disk podporuje Host-Aware SMR , aky je to model?
Device Model: ST8000AS0022-1WL17Z Serial Number: Z840QW12 LU WWN Device Id: 5 000c50 0929a7e67 Firmware Version: SN01 User Capacity: 8,001,563,222,016 bytes [8.00 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 5980 rpm Device is: Not in smartctl database [for details use: -P showall] ATA Version is: ACS-3 T13/2161-D revision 3b SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Mon Dec 30 19:06:23 2019 CET SMART support is: Available - device has SMART capability. SMART support is: EnabledProduct manual v PDF
Tak poté, co jsem nastudoval o čem je SMR a vyreklamoval vadný kus mi dovolte dílčí report stavu.
Úvodem: tyhle SMR a.k.a. archivní disky používám na to, na co jsou určené - teda zápisy velkých bloků dat (typicky zálohy v archivech nebo velké soubory - převážně zvuková data). Filesystem btrfs.
Mám teď v provozu 6 disků, obchodně jsou stejné, ale technicky se liší - 4 starší jsou "host-aware" SMR (konkrétně Seagate ST8000AS0022) a nové dva jsou transparentní (konkrétně Seagate ST8000DM004). Všechny mají kapacitu 8TB.
Transparentní disky jsou rozděleny běžným způsobem a vůbec je neřeším. Fungují normálně. Zásek nastal s těmi staršími "host-aware" - po aktualizaci kernel začal vynucovat zarovnávání partition na zóny disku, což historicky nebylo.
Původní dotaz vznikl právě proto - po upgrade kernelu (resp. celého systému) začal být kernel obeznámen se SMR a protože partition neseděla na zóny disku, odmítl s ní pracovat. Řeším to tedy tak, že na nový disk přesunuju ten starý a pak udělám přepartyšnování a data nahraju zpátky.
Vše další je tedy o zápisek na tu novější variantu disku.
Ke zkušenostem: zkráceně spokojenost, jsem schopen zapisovat soustavně víc jak 110GB za hodinu. V režimu cca. 20 minut zápis a 40 minut relativní klid (zapisuje se druhým procesem nonstop, ale o řád míň dat). Rychlost dostahuju přes 100MB/s v tom jedno procesu... teď zkouším ještě dvojnásobný objem dat za hodinu, vždy 20 minut zápis, 10 minut klid. Zatím to disk zvládá i tak, ale je to teprve pár hodin a disk může ještě mít nějaké místo v cache.
Ještě napíšu jak to vypadá dál se zápisem větších objemů dat a na host-aware disky - jen pro info, kdyby to někdo řešil.
Jediné, co je divné je, že se ve SMART inkrementují countery, některé se časem resetují - to jsem zatím neprokouknul, ale předpokládám, že data mají jinou interpretaci než u klasických disků. Jde hlavně o Raw_Read_Error_Rate, Seek_Error_Rate, Command_Timeout a Hardware_ECC_Recovered. V syslogu není mimo smart hlášení o změnách nic. Žádné IO chyby kernelu.
Zajímavé odkazy:
Jak zjistit co mám: sysfs, utility a
dmesg | grep sd?
Jak na partitions na disk-aware disku (poslední reakce)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.