nfs UID/GID probléma

Sziasztok!
Felvázolom a teljes helyzetet, fontos lehet: az ügyfél szeretne egy olyan rendszert, ahol egy NAS-on elhelyezett postgres db file-jait 2 gépről, 2 külön postmaster is elérheti. Mármint ha az egyik lehal, elindul a másik, így a db folyamatosan elérhető marad. E köré a failover megoldás köré kéne a scripteket megírnom úgy, hogy a végső rendszerhez a fejlesztés ideje alatt nem férek hozzá. Mindebből következőleg a következő tesztkörnyezet terveztem el: adott egy etch, amin ott figyel egy fullosan telepített postgres. Ezen a /var/lib/postgresql/8.1/main/ könyvtárat osztom meg nfs segítségével. A másik etch-en bemountolom ezt az nfs share-t, és megmondom a postmaster-nek, hogy a mount alatti db-t használja. A probléma ott kezdődik, hogy az nfs nem user name/group name alapján mondja meg a kliensnek, hogy kinek milyen jogai vannak, hanem uid/gid alapján. A kliensen postgres uid/gid:101/104, a serveren 103/105, kliensen a 103az ntp uid-je, a 105 a tomcat gid-je, a serveren a 101 a statd uid-je, a 104 az ssl-cert gid-je, tehát ami a serveren postgres/postgres tulajdona, az a kliensen ntp/tomcat alatt látszik. Mindkét oldalon mind a 2-2 id foglalt, méghozzá non-human userek által. A kérdésem, hogy hogy oldható meg uid/gid tényleges megváltoztatása, chmod 777 és ezekhez hasonló biztonsági baklövések nélkül, hogy a kliensen is postgres/postgres legyen a tulajdonosa a megosztott könyvtáraknak? Az uid/gid váltást azért nem preferálom, mert így az összes hozzájuk tartozó file tulajdonosát meg kéne változtatni, a túl-sok-mindenkinek-jogosultságok-osztogatása miatti aggodalmam meg szerintem magától értetődő. Gugli dobott ilyen anonuid,anongid meg all_squash opciókat, de vagy én használtam őket rosszul, vagy félreértelmeztem, és nem is segíthetnek a problémámon. A fő cél, hogy a kliensen futó postmaster tudja használni az nfs-en mountolt db file-jait, a protokollok biztonsági réseit leszámítva kockázat nélkül... 2 napja kutatok, most már úgy érzem, ideje egy segélykiáltásnak...
Valakinek valami ötlete?

Hozzászólások

Ilyen esetben nem art, ha minden eszkoz (a ket szerver es a NAS) kozos nss-t hasznal, vagy keresel egy mindharmon meg szabad uid/gid parost, es atrakod erre a postgrest.

Az éles rendszerben a környezet kialakítása az ügyfél feladata lesz, mi csak a postgres-hez kapcsolódó terméket és a failover-megoldást szállítjuk. Én pillanatnyilag a tesztkörnyezetet alakítom ki, NAS nem áll a rendelkezésemre, ezért a másik etch-en való nfs-megosztásos megoldás. A postgres szabad uid/gid párosra állításával az a probléma, hogy akkor kb. minden hozzá tartozó file-t chown-olni kéne... Egy upgrade nem csapja felül ezeket a jogokat? Mert mindezt mindig eljátszani, ha a postgres frissül nem móka... Az nfs mount körül nem lehetne valamit varázsolni, hogy megfelelőként lássa? Szerény véleményem szerint ez lenne a legkorrektebb megoldás.

--
"It all keeps adding up / I think I'm cracking up / Am I just paranoid? / I'm just stoned"
/Green Day - Basket Case/

Egyelőre semmi eredmény. Találtam valami

map_static=/itt/van/a/map/file

cuccot is, az ebben megadott file-ban lehet megadni, hogy ami a kliensen adott uid/gid, azt a server megfelelően behazudja, de fogalmam sincs, hova kéne beírni ezt a map_static dolgot. /etc/exports zárójeles részébe próbáltam, az nem felel meg neki... Valaki tudna adni valami további támpontot?

--
"It all keeps adding up / I think I'm cracking up / Am I just paranoid? / I'm just stoned"
/Green Day - Basket Case/

olyan nagy probléma egy szabad közös uid-et találni ? (nem)

miért jó egyébként NFS-re tenni?

A szabad közös uid-del a gond, hogy a postgres frissítésekor ha jól sejtem, felülcsapná az owner-t, nem?

NFS meg azért kell, hogy a könyvtárat 2 külön gépen 2 külön postmaster is el tudja érni. (természetesen nem egyszerre)

--
"It all keeps adding up / I think I'm cracking up / Am I just paranoid? / I'm just stoned"
/Green Day - Basket Case/

Nem, a letezo postgres user UID/GID-je nem valtozik frissiteskor. Az meg meglepo lenne, ha a postinst piszkalna a filerendszert... Probalkozhatsz meg ACL-ekkel, a linuxos NFS 16 ACL-t atvisz a droton. Remelhetoleg irasjog eleg a postgresql-nek (rakj a konyvtarakra default ACL-t is!), es nem kell, hogy a sajatja legyen.

Ez az ACL-dolog jól hangzik, viszont számomra kicsit új. Kliens-oldalon próbáltam a könyvtárra jogot adni, ahova az nfs-t mountoltam:

$ sudo setfacl -d -m u:postgres:rwX pg_mnt
setfacl: pg_mnt: A művelet nem támogatott

Mit szúrok el?

--
"It all keeps adding up / I think I'm cracking up / Am I just paranoid? / I'm just stoned"
/Green Day - Basket Case/

"NFS meg azért kell, hogy a könyvtárat 2 külön gépen 2 külön postmaster is el tudja érni. (természetesen nem egyszerre)"

Pont egy HA clusternek készülő valaminél pont furcsán hangzik, de legyen NFS.

uid/gid meg frissítés... fogalmam sincs hogy az apt hogyan kezeli ezt a helyzetet de ha amiatt akarod megbonyolítani hogy az apt-get upgrade nehogy elrontsa akkor már régen rossz az egész. de szerintem az apt sem ír felül semmit

Pont egy HA clusternek készülő valaminél pont furcsán hangzik

Ezen van a hangsúly, hogy ez nem egy cluster lesz, csak egy ahhoz hasonló valami. Azontúl egy tesztkörnyezet a valamihez, kevés erőforrásból. Szóval lényegében az NFS kényszerhelyzet. Vagy esetleg egy Samba vagy egy SSHFS jobb lenne a célra? Szerintem az NFS is eléggé be fogja lassítani a postgres-t... :(

--
"It all keeps adding up / I think I'm cracking up / Am I just paranoid? / I'm just stoned"
/Green Day - Basket Case/

Próbáltad már postgresql-t nfs-en? Mert én eddig ahány adatbázist láttam, mindegyikre nagyívben elkerülendőnek írták az NFS-t.

ja... de amióta divatba jöttek ezek a filer appliance-ek azóta orrba-szájba reklámozzák, hogy mindenre jók, ha NFS nem akkor iSCSI, csak mindenképp az ő termékük szolgálja ki. régen ilyen kérdés fel se merült volna, most már az NFS-en lévő VMFS image ESX-nél egyenesen ajánlott konfiguráció, nem beszélve adatbázisokról, az hogy sz***r az senkit se érdekel. (félreértés ne essék, nagyon jók ezek a filerek)

Aba zaj, hogy itt nem az én döntésem a mérvadó, nekem csak meg kell valósítanom, amit fent megálmodtak. Nekik pedig egy hálózati mount-on levő db kell, amit 2 postmaster elér, és az egyik, de csakis az egyik mindig fut...

--
"It all keeps adding up / I think I'm cracking up / Am I just paranoid? / I'm just stoned"
/Green Day - Basket Case/