NFS szerver linux containerben

Fórumok

Sziasztok!

Próbált e már valaki NFS szervert üzemeltetni LXC-ben, esetleg docker-ben?

Én 2-3 éves bejegyzéseket találok, amik szerint nem lehet, hacsak nem user space nfs servert használok. Azoknál meg nincs locking.

Ez most is így van?

köszönöm

Hozzászólások

Pont a konkret problemat nem ismerem, de szinte biztos, hogy docker --cap-add meg --privileged kapcsolokkal meg lehet oldani a dolgot. Tennek egy probat a
docker run --cap-add=ALL --privileged -i nfscontainer-el.

-
Big Data trendek 2016

Én nem értem, hogy mit szeretnél.

Az "LXC-ben" meg a hozzá hasonló technológiákban nyilvánvalóan user-space dolgokat lehet futtatni, mert a kernel közös. Utána leírod, hogy a user-space megoldás nem jó. Akkor mi a búbánatot szeretnél?

Ahogy ertem, o a Debianos nfs-kernel-server -nek megfelelo megoldast keres, de olyat, amit a Docker is tamogat. Mivel a kernel kozos, erre aligha van esely. Gondolom a user space NFS server azert nem jatszik, mert valamit nem tud, ami neki meg kellene.

A topicnyito arra kivancsi, van-e feloldasa a fenti problemanak. Szerintem nincs, de en nem vagyok Docker/LXC expert.
--
Blog | @hron84
Üzemeltető macik

Ez nem expertség kérdése!
Fából vaskarikát szeretne.

Vagy legyen neki jó a kernel-based megoldás - annak az összes megkötésével - és akkor ezeknek az LXC-szerű megoldásoknak nincs létjogosultsága a történetben, vagy legyen neki jó a user-space megoldás - akkor meg azt keressen, és persze ebben az esetben a gugli a barátja. Szerintem...

"Fából vaskarikát szeretne" nem feltetlen, bar elegge hibrid a megoldas. Az van, hogy az nfs-kernel-server telepitve van a kontenerben, csak nem tud elindulni, ha nincsenek betoltve a megfelelol kernel modulok. Annyi a tortenet, hogy SYS_MODULE capot odaadja a kontenernek, es a kontenerben gondoskodik a megfelelo kernel modulok betolteserol (nfs, nfsd), es akkor a szukseges modulok a kernelben (nyilvan a kozosben) be vannak toltve, maga az nfs szerver pedig kontenerben fut.

-
Big Data trendek 2016

Miért nem jó a sima volume? Csinalsz egy data volumot majd annak osztod ki aminek akarod a volumesfrom-mal.
Persze dockerre gondolok.

De akkor meg mindek is akarja ezt dockerben?

- Szeretnek NFS-t atpockolni, de a container technologia nem erre van - Nem ezt fogom hasznalni
- Szeretnek NFS-t atpockolni, siman megoldhato sima Linux-szal - ezt fogom hasznalni

A megfelelo eszkozt a megfelelo problemara.
Csaomoszor belefutunk itt abba, hogy az emberek teasutivel akarnak biciklikullot meghuzni egy versenybringa kereken, ami egy traktor elso kerekenek szeretnenek hasznalni.

Biztos lehet, csak nekem erre nem lenne idom. :D

Igazság szerint nem igazán idő kérdése, nálam kb. egy percen belül települt és működik.
Az, hogy ez jó ötlet-e már merőben más kérdés. Én pl. azért tettem mindent, amit lehet konténerbe, hogy a host masinán a lehető legkevesebb dolog legyen konfigurálva, telepítve, stb. stb. Igen, ennek ára van, hogy ez megéri-e, az már esetleg vitatható.

Megneztem par nfs kontenert, es a legtobbnel irtak, hogy tesztelesi cellal van, mert nem akar a gepere nfs-t telepiteni, vagy neha nem elerheto valami nfs megosztas, amit oda szeretne mockolni, stb. Ha jol konfigolod az exportokat, es nem tobb Dockerbe zarni sem mint siman feltelepiteni (raadasul az reprodukalhato), akkor kedvedre hoszhatsz letre nfs szervereket tetszoleges megosztassal, akar 100at is egyszerre, es amelyik nem kell csak kilovod azt a kontenert anelkul, hogy barmilyen filet szerkesztgetned kene vagy a tobbbit ujra kene inditani.
for a in 1 2 3 ... 100; do docker run -v /media/$a:/export -d nfscontainer; done
Nem azt mondom, hogy en igy/ezt csinalom, de azert nem olyan nagyon ordogtol valo a gondolat.

-
Big Data trendek 2016

Egy nfs cluster építése a cél ahol az egyes, mondjuk ügyfeleknek saját, jól elkülöníthető részük van.
Ehhez egy egszerű felület is kellene, most elsőre a webmin jutott eszembe, ami egy központi LDAP szerverről authentikál és így több user tudja adminolni a szolgáltatást.

Kb. ez lenne.

Ha ez lenne a feladat, akkor a korrekt megoldáshoz vagy full user-space nfs megoldás kellene (ez performanciailag is necces tud azért lenni, de nem lehetetlen), vagy külön kernel ügyfelenként (ehhez ugye valami más megoldás kell, mint amit az LXC tud), vagy a jelenlegi kernel nfs implementációtól alapvetően eltérő valami.

Úgyhogy nem biztos, hogy a feladatra létezik jelenleg korrekt megoldás a teljes virtualizáción kívül...

Ja, ha már ideírtad a webmint... én jó 10 évvel ezelőtt láttam utoljára, az, amit akkor láttam a belsejében, az alapján a közelébe nem mernék engedni ügyfelet. Hacsak nem írták át totál nulláról az egészet koncepcionálisan (ami ennyi idő alatt azért nem lehetetlen), biztosan nem raknám ki ügyfeleknek - otthonra, vagy privát elzárt management LAN-on megfelelhet. Ha minden ügyfél kap a saját kis szemétdombjára egyet, ami ráadásul be van zárva valahogy (csak VPN-en vagy SSH tunnelen keresztül látja, mindenki csak a sajátját), akkor elmegy.

"A webminhez nem adnék hozzáférést az ügyfeleknek, az csak arra kell, hogy többen tudják kezelni, adminolni de nem ügyfelek."

Ne. Akkor mar vegyel fel olyan embereket, akik nem felnek par fajl parancssori szerkesztesetol, mert az NFS aktiv uzemeltetese lenyegeben ennyi.
--
Blog | @hron84
Üzemeltető macik

Nezzuk csak:
- nfs cluster: ezt majd meglatjuk, nem is biztos hogy ez a megoldas
- ugyfeleknek sajat, jol elkulonitett resze van: tarterulet? full szerver? mi az hogy elkulonitett resz? Vagy az ugyfelnek van egy tarterulete, amibol o oszthat ki masoknak?

Kerdesek:
- milyen kliensek fernek majd hozza? Win vagy Linux?

Nekem arra, hogy sajat tarterulete legyen az embereknek amiben ok osztjak ki a megfelelo mennyisegu adatot alapbol olyan jut eszembe, hogy felhasznalonkent egy iscsi LUN, es ott azt hoz letre es ugy megfelelo quotaval ahogy akar de akar sime LVM-en lv-kel is jatszhatna az ember.

Az iscsi meg minden oprendszernek jo.

De ez csak egy a megoldasok kozul ami hirtelen eszembe jutott. Persze ez kicsit alacsonyabb dolog, mint az NFS. Es nem is uyganarra jo. De tovabbra sem tudjuk hogy pontosan mit is a cel. :D

Igazabol sikerult leirni azt, amit nem kerdeztunk, hogy te hogyan oldanad meg. Nem, az a kerdes, hogy mit szeretnel ezzel elerni? NFS-tarhelyszolgaltato akarsz lenni? Mi az, hogy ugyfel? Szerver? Tenyleges emberek kapnanak NFS jogosultsagokat? Valami webes cucc (pl. ownCloud) moge kellene tarhely? Mit szeretnel csinalni?
--
Blog | @hron84
Üzemeltető macik

Hallottam már legendákat, hogy van akinek sikerült, de szerintem nem lehet. Akinek sikerül, annak tuti hogy nincs izolálva a többi konténertől.

De miért ne lenne locking userspace NFS szerverben? A Ganesha támogatja. Csak közben nem lehet NFS kliens a szerver. [1]

Probaltam, de nem mukodik. Mi gluster-t hasznalunk helyette. Az megy. Hozzateszem centos 7-en es nem debianon hasznaljuk. Talan nem jelent kulonbseget.

Probaltam nfs servert konfigolni LXC-ben. Azt tapasztaltam, hogy sem nfs kliens, sem nfs server nem mukodik benne. Installaltam gluster servert illetve glusterfs-t. Mukodik, mint server es kliens egyarant.
Letrehozol gluster volume-kat, amiket mint glusterfs-t felveszed a kliens fstab-ba.

Szia, csak kérdésem van :)

Ott tartok, hogy felraktam a vasra egy ubuntu 15-öt és kreáltam egy ubuntu 14-es containert.
Ebbe letöltöttem és buildeltem az NFS-ganesha-t.
Ez alapján dolgoztam:
http://blog.widodh.nl/2014/12/nfs-ganesha-with-libcephfs-on-ubuntu-14-0…

Érdekelne, hogy van e már ebből kész csomag is vagy mindenképp buildelni kell?
Továbbá elsőre az érdekel, hogy mik a lépések egy egyszerű share készítéséhez?
Ill. minden hasznos tapasztalt érdekel, lehet privátban is.

köszönöm

ui.
a build megvan, most már csak az kellene, hogy pontsan hogyan tudok vele egy egyszerű nfs megosztást készíteni

Van példakonfig a forrásban, egy egyszerűbb share ennyi:


[root@dnas root]# c /etc/ganesha/ganesha.conf
NFS_Core_Param
{
        Plugins_Dir = "/usr/lib/x86_64-linux-gnu/ganesha";
}

EXPORT
{
        # Export Id (mandatory, each EXPORT must have a unique Export_Id)
        Export_Id = 77;

        # Exported path (mandatory)
        Path = /media;

        # Pseudo Path (required for NFS v4)
        Pseudo = /media;

        # Required for access (default is None)
        # Could use CLIENT blocks instead
        Access_Type = RO;

        # Exporting FSAL
        FSAL {
                Name = VFS;
        }
}

A többi paraméter a doksiban le van írva: https://github.com/nfs-ganesha/nfs-ganesha/wiki/Configurationfile

Nekem is sikerült összeállítani LXC-ben a ganesha nfs-t de gond van:
nem tudom mountolni pedig showmount -e mutatja a megosztást.

Valami tipp esetleg, hogy merrel lehetne keresgélni?

mount -t nfs ip-cim:/home/exports/company1 /mnt/nfs
mount.nfs: an incorrect mount option was specified

EXPORT
{
# Export Id (mandatory, each EXPORT must have a unique Export_Id)
Export_Id = 77;

# Exported path (mandatory)
Path = /home/exports/company1;

# Pseudo Path (required for NFS v4)
Pseudo = /home/exports/company1;

# Required for access (default is None)
# Could use CLIENT blocks instead
Access_Type = RW;

# Exporting FSAL
FSAL {
Name = VFS;
}
}

LOG {

ALL = FULL_DEBUG;

}

http://pastebin.com/sUi5ZHLc

root@virt0:/mnt/nfs# mount.nfs -vvv 172.19.8.25:/home/exports/company2 /mnt/nfs
mount.nfs: timeout set for Thu Mar 31 15:22:54 2016
mount.nfs: trying text-based options 'vers=4,addr=172.19.8.25,clientaddr=172.19.8.131'
mount.nfs: mount(2): Operation not permitted
mount.nfs: trying text-based options 'addr=172.19.8.25'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 172.19.8.25 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 172.19.8.25 prog 100005 vers 3 prot UDP port 33487
mount.nfs: mount(2): Invalid argument
mount.nfs: an incorrect mount option was specified

tail -f /var/log/syslog

...
Mar 31 15:22:49 virt0 kernel: [2504001.096982] NFS reply getattr: -22
Mar 31 15:22:49 virt0 kernel: [2504001.096984] nfs_create_server: getattr error = 22
....

Az az incorrect mount option nekem azt mondja, a kliens valamit nem támogat éppen, és a 22-es hibakód szintén EINVAL, ha minden igaz - az RPC szolgáltatások futnak? A kernel releváns opciói rendben vannak? Egy másik NFS serveren lévő exportot ugyanezzel a klienssel konfigurációs változtatás nélkül képes vagy mount-olni akár v4, akár v3 protokollon úgy explicite, mint fallback-ként? Egy másik kliens ugyanezt az exportot eléri esetleg? (a keresztbetesztelés első fele érdekesebb most talán)
------------------------
{0} ok boto
boto ?