Portál AbcLinuxu, 25. dubna 2024 11:17


Nástroje: Začni sledovat (6) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
26.9.2007 00:12 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
Takže bude další díl? Nevidím tu zvětšování (zmenšování) LV...

Druhý dotaz: nějak nechápu princip těch snapshotů? Je to něco podobného jako snapshot třeba ve vmware?
never use rm after eight
26.9.2007 01:03 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
V podstatě ano, ale je to samozřejmě snapshot jen obsahu příslušného blokového zařízení, ne celého systému.
26.9.2007 04:48 Michal Ludvig | skóre: 16
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Zvětšování VG (např. po přidání nového disky do systému): vgextend

Zvětšování LV (např. když dochází místo na jednon LV) pokud ve VG je ještě volno: lvextend případně s parametrem --resizefs

Myslím že na další díl by to nevydalo. Teď když už víte co je PV, VG a LV tak si pročtěte výstup příkazu lvm help a uvidíte že na LVM nic složitého není.
26.9.2007 08:24 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Pár témat by se našlo - občas se někdo v poradně ptá na mirroring pomocí LVM, případně na sladění s md. Zajímavé by také byly praktické zkušenosti a doporučení pro nastavování stripingu. Nebo čeho můžeme dosáhnout v lvm.conf.
26.9.2007 11:32 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Chtělo by to popsat, kde je uložena konfigurace (tj. jestli potřebuji VFS pro sestavení VG/LV), jak LVM2 identifikuje a vyhledavá PVs (název zařízení nebo UUID, co když zpřeházím hard disky), jak se určuje, z kterých PEs bude tvořen LV (třeba chci vyměnit hard disk, nebo mít tato data na tomto rychlejším disku), kdo vyrábí bloková zařízení v /dev/data (lvcreate nebo udev).

Článek je dobrý návod jak vyrobit LVs, ale o následné správě tu nic není.
Milan 28.9.2007 09:48 Milan "Nemo" Cingroš | skóre: 27 | blog: Nautilus | Plzeň
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Článek měl být jen návod na vytvoření LVs. Během příštího týdne začnu pracovat na pokračování.
Soutěžte na české LinuxWiki a vyhrajte plyšového Tuxe.
Cohen avatar 28.9.2007 16:48 Cohen | skóre: 21 | blog: Drobnosti | Brno
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů

Super, díky. Už se těším.

OpenPGP key fingerprint: 489C 5EC8 0FD6 2BE8 9E59 B4F7 19C1 3E8C E0F5 DB61 (https://www.fi.muni.cz/~xruzick7/pgp-klic/)
29.9.2007 02:12 Petr
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Též se těším. Rozhodně bude užitečné pokud přibudou ještě nějaké příklady zmenšování zvětšování a tak, přidávání či ubírání fyzických a logických disků či partition. Při instalaci se mi LVM nabízí už dlouho. Vždy jsem se ale trochu bál do toho jít. Nicméně vypadá to velmi užitečně.
StefanV avatar 26.9.2007 07:29 StefanV | skóre: 11
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin

Lze získat z poškozeného LV nějak data, nebo popřípadě opravit??

Jednou mi na virtuálním stroji padl / a nemohl jsem ho již nijak detekovat. Jelikož to nebyl důležitý server tak jsem ho znovu nainstaloval a dále neřešil.
Viva el presidente...
Věroš avatar 26.9.2007 09:43 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Čekal bych, že to půjde (popis implementace LVM je v jádře). Ale množství práce vynaložené na zálohování bude určitě menší, než množství práce vynaložené na záchranu dat.
Školím Ansible
26.9.2007 21:54 Milan Brož
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Pokud mate zalohy metadat, jde to jednoduse tak, ze obnovite metadata. "man vgcfgrestore"

Standardne se ukladaji v /etc/lvm, v lvm.conf lze zmenit (zalohovat, pripadne ukladat na jiny disk).

V nejhorsim pripade se daji z metadat precist informace, kde se LV nachazel a zkusit to obnovit rucne (casem snad bude i nekde popis jak :-)
StefanV avatar 27.9.2007 08:48 StefanV | skóre: 11
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Výborně díky, pro příště už vím jak na to. Možná to hned na jednom stroji zkusím.
Viva el presidente...
26.9.2007 07:50 Twin
Rozbalit Rozbalit vše LVM od IBM
Odpovědět | Sbalit | Link | Blokovat | Admin
Pekny clanek na strankach IBM
stulda avatar 26.9.2007 08:34 stulda | skóre: 18 | Sokolov
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
Uvazuji o pouziti lvm2 v kombinaci se softwarovym raidem a zajimalo by me: 1) jestli ma lvm2 (+swraid) nejaky negativni vliv na vykon disku nebo ne. 2) je problem bootovat z takto vytvoreneho disku, mam radeji /boot nechat klasicky bez raidu a vlm2?
Věroš avatar 26.9.2007 09:52 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
1) když jsem LVM nasazoval, tak jsem se o výkon taky zajímal. Nějaké benchmarky jsem v mailing-listech taky našel a v podstatě: LVM sice přidává nějakou režii (v nějakém extrémním případě to bylo až 10%, jinak v jednotkých procent), ale bohatě to vyvažuje svými možnostmi - zejména přehledností správy. Při použití LVM člověk není omezen např. 16 oddíly na zařízení; zařízení má pojmenovaná tak, jak potřebuje a nemusí přemýšlet, kam připojit zařízení /dev/sda12; konečně má možnost udělat si snapshot zařízení, a jiná pozitiva.

Záleží potom, jestli ti záleží na hrubé diskové propustnosti nebo na spravovatelnosti. Pro jeden počítač je LVM IMHO zbytečné, ale pokud začneš vytvářet virtuální stroje (např. via XEN), tak bez LVM bych nedáš ani ránu (nebo máš nějaký lepší storage :-) ).
Školím Ansible
26.9.2007 22:05 Milan Brož
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Pri konfiguraci MD sw raid a nad tim LVM muze byt vykon trochu nizsi, z nekolika duvodu:

1) LVM nenastavi dostatecne velky readahead, coz muze ovlivnit vykonnost sekvencniho cteni, zejmena pro RAID0. (neni problem jej ale zvetsit rucne napr. pomoci blockdev --setra ...)

2) momentalne jsou v kernelu jista omezeni, ktera zpusobi, ze nektere IO operace se musi provadet po castech (velikost io operace pro takto vrstvene zarizeni je omezena velikosti stranky)

Oboji ma jiz sve reseni, jen to chvili bude trvat nez se dostane do stabilniho jadra/LVM nastroju.
msk avatar 26.9.2007 08:39 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
Stale nechapem, ako funguje zmensovanie LVM. Majme 2 disky hda, hdb ( po 120GB ), nad ktorymi je LVM s ext3 ( dohromady 240GB ). Dajme tomu, ze je zaplnenych len 20GB a ja chcem zrusit hdb. Ako sa resizne ten filesystem? Postara sa o to priamo lvm? Ako bude zarucene, ze data z hdb sa presunu na hda?
Věroš avatar 26.9.2007 09:53 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
nejdřív změnit velikost filesystému (ten uvolní místo na konci blokového zařízení) a potom teprve změnit velikost toho blokového zařízení (to se taky zmenší od konce).
Školím Ansible
msk avatar 26.9.2007 09:55 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
To ma napadlo tiez, ale problem to neriesi. Co ked budem chciet odstranit hda?
Věroš avatar 26.9.2007 10:22 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
- Změnit velikost LV, tak aby se dala uvolnit patřičná PV

- vyprázdnit PV ( pvmove )

- odstranit PV

PS: Je to v návodu.
Školím Ansible
26.9.2007 08:57 marekb | skóre: 16 | blog: Co se nevešlo do /dev/null | Praha
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
Doporucuji ke shlednuti zaznam prednasky Milana Broze z Linuxoveho vikendu:

http://www.avc-cvut.cz/avc.php?id=4714
2.10.2007 16:40 Milan Brož
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
... kdyby nekdo mel zajem, slajdy jsou tady

http://mbroz.fedorapeople.org/talks/lvm-weekend07.pdf
Věroš avatar 26.9.2007 10:33 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
Pro lenochy je dobré ještě znát příkazy lvs, pvs, vgs.
root@kryten:~# pvs
  PV         VG    Fmt  Attr PSize   PFree 
  /dev/md1   dwarf lvm2 a-   182.54G 56.95G
root@kryten:~# lvs
  LV           VG    Attr   LSize   Origin Snap%  Move Log Copy% 
  holly-disk   dwarf -wi-ao  40.00G                              
  holly-swap   dwarf -wi-ao   1.00G                              
   ...
  toaster-disk dwarf -wi-a-  10.00G                              
  toaster-swap dwarf -wi-a- 256.00M                              
root@kryten:~# vgs
  VG    #PV #LV #SN Attr   VSize   VFree 
  dwarf   1  12   0 wz--n- 182.54G 56.95G
Školím Ansible
CIJOML avatar 26.9.2007 10:37 CIJOML | skóre: 58 | Praha
Rozbalit Rozbalit vše BOOT z LVM
Odpovědět | Sbalit | Link | Blokovat | Admin
Bootuju s lilem primo z LVM a zadnou obezlickoidni partition nepotrebuju. Autor by mel jeste chvili procitat manualy nez prohlasi s takovou razanci takovou hloupost.
26.9.2007 12:27 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BOOT z LVM
Taky se mi to nějak nezdálo, ale říkal jsem si, že si to nejdřív vyzkouším prakticky…
Milan 26.9.2007 12:41 Milan "Nemo" Cingroš | skóre: 27 | blog: Nautilus | Plzeň
Rozbalit Rozbalit vše Re: BOOT z LVM
Děkuju za upozornění, chyba v článku je už opravená.
Soutěžte na české LinuxWiki a vyhrajte plyšového Tuxe.
26.9.2007 12:02 SAL
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
Chcelo by to dalsi clanok. Hlavne by ma zaujimali tieto veci:
  - prakticke zmensenie/zvacsenie filesystemu ext3 a nasledne particie LVM
  - ukazka prace so snapshotmi (raz som to skusal, ale velmi sa mi nedarilo)
  - mirroring (tusim to uz niekto spominal).
Dalej je mozne nieco take, ze mam LVM particiu na 2 strojoch a za behu systemu by som rad zosycnhronizoval ich obsah a nasledne presunul virtualny stroj Xenu z jedneho na druhy. Uvazoval som o mirrore cez RAID + ATA over ethernet, vcelku by to nejak slo, ale mozno by to bolo krajsie cez LVM.
26.9.2007 13:40 misch
Rozbalit Rozbalit vše LVM2: problémy
Odpovědět | Sbalit | Link | Blokovat | Admin
Bohužel jsem před krátkou dobou narazil hned na dva problémy související s LVM2 (jádro 2.6.22 z Fedory 6):

a) on-line zvětšení VG s ext3 filsystémem funguje bezvadně, dokud není potřeba zvětšit filesystém na tolik, že už se musí zvětšit i velikost žurnálu. Pak resize2fs ani ext2online nezafungují, a musí se resizovat offline :( To sice nesouvisí s LVM jen okrajově, ale ... resize je samozřejmě jedním z důvodů proč člověk LVM používá.

b) /usr připojený přes /dev/vg0/usr, a současně i existující _přeplněný_ snapshot téhož LV. Zdánlivě se nic neděje (/usr funguje, pouze snapshot není provozuschopný, což je logické). Problém nastal při rebootu. Mount nebyl schopen připojit /usr, protože "inteligentní" LVM2 driver se rozhodl že když nefunguje snapshopt, tak nebude fungovat ani LV ze kterého je odvozený. Pěkný popis této chyby je tady.

To jen pro pobavení, že není všechno tak jednoduché jak se zdá :)
26.9.2007 15:28 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: LVM2: problémy
Ad a: nejde spíš o ten parametr, který nastavuje při vytváření filesystému pomocí '-E resize=...'? Tak či onak bych to považoval spíš za problém ext3 než LVM - podle vašeho popisu to dopadne naprosto stejně i v případě, že půjde místo logical volume o obyčejnou partition.
27.9.2007 11:58 misch
Rozbalit Rozbalit vše Re: LVM2: problémy
Jasne, tohle neni samozrejme problem LVM. Ale bez LVM se clovek k on-line resizovani partition tak snadno nedostane, protoze bezna diskova partition se moc snadno za behu zvetsit neda.

Tzn. ten problem existuje bez ohledu na LVM, ale teprve s nim na nej clovek pravdepodobne narazi.
26.9.2007 22:11 Milan Brož
Rozbalit Rozbalit vše Re: LVM2: problémy
ad b)

ano, to byla chyba. neslo aktivovat LV, u nehoz existoval preplneny snapshot. Je opraveno v kernelu >= 2.6.23*, 2.6.22.2, 2.6.20.17 :-)
27.9.2007 11:59 misch
Rozbalit Rozbalit vše Re: LVM2: problémy
Uff, dik za presnou informaci! Konecne vim na kterou verzi jadra se mam snazit upgradovat.
26.9.2007 15:39 xm | skóre: 36 | blog: Osvobozený blog | Praha
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
Jak je na tom LVM2 s výkonem (hlavně rychlost čtení, ale i zápisu)? Na nějakém mailing-listu jsem kdysi četl nějaký benchmark z kterého vycházelo, že při použití LVM2 dochází ke snížení rychlost diskových operací až o třetinu! To mi přijde šílené... pokud by to bylo třeba 5%, dalo by se to ještě snést, ale cokoliv většího považuji za neúnosné.

Jak je na tom LVM2 s výkonem dnes?
Svoboda je tím nejdůležitějším, co máme. Nenechte se o ní připravit, podporujte Pirátskou stranu!
26.9.2007 18:50 Palo
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
Temy na dalsie pokracovanie: - Presunutie diskov z jedneho pocitaca na iny - Odstranenie disku zo systemu - SW RAID setup (0,1,5) - Pouzitie snapshotov (rychlejsie zalohy, navrat zmien po instalacii) ...

Palo
26.9.2007 22:22 Xo
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
česky psaný článek o instalaci linuxu na RAID by se mi moc hodil.
26.9.2007 23:24 List | skóre: 27
Rozbalit Rozbalit vše Re: LVM2 na distribuovanem diskovem systemu
Odpovědět | Sbalit | Link | Blokovat | Admin
Nemate nekdo zkusenost jak se chova system pri pouziti na FibreChannelu nebo nejakem jinem distribuovanem diskovem systemu. Jde mi hlavne o situaci, kdy jeden disk sdilim s vice stroji, coz se mi hodi pri migraci virt. stroju na Xenu.

Zajimalo by me, kde jsou uchovavany informace o nastaveni (tusil bych je hlavicce PV). Dale take jak pri zmene LVM na jednom stroji si s tim poradi stroj druhy. Jde mi hlavne o pripad, kdy chci pridat PV nebo vytvorit novy LV, pricemz existujici casti PV i LV jsou pouzivany a nemohu si dovolit reboot (resp. odebrani/pridani modulu).

Dekuji za jakekoliv zkusenosti a informace.
2.10.2007 10:46 Jiri Bajer | skóre: 34 | blog: Sarimuv koutek | Praha
Rozbalit Rozbalit vše Re: LVM2 na distribuovanem diskovem systemu
Myslis vgexport a vgimport? Napr. u clusteru se 2 nody v modu active-passive je naimportovana VG na aktivnim nodu a pri presunu aktivity na zalozni nod se premigruje VG a remountne FS na RW...
2.10.2007 11:30 Milan Brož
Rozbalit Rozbalit vše Re: LVM2 na distribuovanem diskovem systemu
Toto plati pokud nepouzivate cluster LVM (CLVM daemon) (coz asi rikate tim active/passive :-).

CLVM samozrejme zamyka na urovni VG, cimz padem vyzaduje locking manager v kernelu (DLM) (tzn zajisti distribuci metadat na jednotlive nody pri jejich zmene).

Metadata (tj. konfigurace LV/VG) je standardne ulozena primo na disku v predem dane oblasti (dane pri vytvoreni pomoci pvcreate).
2.10.2007 16:20 anon123 | skóre: 35 | blog: ganomi
Rozbalit Rozbalit vše Re: LVM2 na distribuovanem diskovem systemu

Ja mam treba XEN s Dom0 na nem LVM pro DomUs. Presne si to uz nepamatuji (nedelam to kazdy den),ale nebyl problem zmenit velikost LVM pro DomU za behu. Bohuzel zmena se promitla az po restartu DomU. Nevim jak to je s aktualnim Xenem, ale kdyby jsi potreboval vedet, tak to muzu vyzkouset a napsat podrobnosti.

2.10.2007 22:11 List | skóre: 27
Rozbalit Rozbalit vše Re: LVM2 na distribuovanem diskovem systemu
Jde mi o situaci, kdy mam sdileny disk na urovni SCSI (tedy fyzicke zarizeni, ktere je videt pod ruznymi nazvy (muze byt jine major cislo zarizeni) na ruznych strojich. Konkretne mam xen1 a xen2, na jednom vidim /dev/sdd a na druhem ten samy diskovy prostor vidim jako /dev/sdg. To potrebuji pro migraci virtualnich stroju. Pouzivana partition se pouziva vzdy jen na jednom stroji (nezvnika konflikt souboroveho systemu). Napriklad: xen1:/dev/sdd1 -> nepouzivano (nebezi nad nim virtualni stroj) xen1:/dev/sdd2 -> pouzivano (je nastartovan virtualni stroj) xen2:/dev/sdg1 -> pouzivano xen3:/dev/sdg2 -> nepouzivano

Pouzivam xen 3.0.4 bez LVM, ale pokud by mi to neco prineslo, zacal bych jej pouzivat, hlavne bych chtel: - konec s omezenim max. 15 part. na jednom zarizeni (uz vim, ze LVM umi ;-) - pridat na xen1 novy oddil (LV), pokud to udelam na xen1, jak to aktualizuji na xen2? - vlastne bych chtel delat LVM operace, tak ale aby byly vysledky videt na vsech Domain-0

Zkousel jsem se divat na CLVM, zda se, ze to je to co chci. Jake s tim mate zkusenosti?

Diky za info.
Lukáš Benda avatar 26.9.2007 23:28 Lukáš Benda | skóre: 12 | blog: benBlog | Štítina
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin
No ten kdo chce rozsahlejsi How-To a nevadi mu ze to bude v anglictine: http://www.gentoo.org/doc/en/gentoo-x86+raid+lvm2-quickinstall.xml

Kdyz si v Googlu nechate vyhledat gentoo a LVM2 ziskate vetsi mnozstvi dobrych How-to.

Btw. spousta veci je prave ve spojeni s touhle distribuci pekne posano.
Google bomba: benzin blog
27.9.2007 13:02 alkoholik | skóre: 40 | blog: Alkoholik
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Posano? Jako po.sano nebo pos.ano?
;)
2.10.2007 16:14 anon123 | skóre: 35 | blog: ganomi
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
Odpovědět | Sbalit | Link | Blokovat | Admin

Vyuziji tuto diskuzi k otazce. LVM2 vyuzivam avsak jsem nenasel odpoved na nasleduji vec.

Musi byt snapshot stejne velky nebo vetsi nez logical volume? Zkousel i snapshot o velikosti 1GB na 10GB logical volume (ne plne) a fungovalo. Rad bych se ujistil jak to je.

Je mozne udelat snapshot na jinou volume group? Na jedne volume group mi dochazi misto a druhou volume group mam prazdnou na zalohy. Bohuzel snapshot se mi nedari na jinou volume group. Mate nejaky koment? Zase se chci spise ujistit.

2.10.2007 16:35 Milan Brož
Rozbalit Rozbalit vše Re: LVM2 - dynamické vytváření diskových oddílů
man lvcreate -> -s option tam je to odjakziva popsane

Snapshot (resp copy-on-write pro snapshot) ma velikost maximalne logickeho volume, ze ktereho delate snapshot.

Obecne si musite spocitat/odhadnout kolik sektoru (dat) se v prubehu zivota snapshotu zmeni - pokud bude malo mista, snapshot se preplni a oznaci jako neaktivni (cimz o nej prijdete). (Uklada se vzdy max 1. zmena - pokud je dany sektor prepsany nekolikrat, samozrejme se alokuje na snapshotu pouze jednou.)

Pokud je snapshot stejne velky, nikdy se nemuze preplnit.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.