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
- 8655 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
É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?
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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...
- A hozzászóláshoz be kell jelentkezni
"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.
- A hozzászóláshoz be kell jelentkezni
Igazság szerint én feltettem a nfs-kernel-server csomagot, pötyögtem egy exports fájlt és működik már pár hónapja (talán éve). Szóval én se értem a kérdést, hehe.
Igen, persze, ennek ára van, de nálam nem a biztonsági szempontok játszottak az lxc/openvz választásakor.
- A hozzászóláshoz be kell jelentkezni
maga az nfs szerver pedig kontenerben fut.
Nade nem ott fut. A kernelben fut, ami pedig közös. A user-space részek ugyan valóban a konténerben futnak, de ennyi erővel futhatnának a konténeren kívül is, sok különbség nem lenne, a lényegi működés ugyanis a kernelben van.
- A hozzászóláshoz be kell jelentkezni
Igazabol futhathna ott is szerintem. Ha namespace-elve lenne.
- A hozzászóláshoz be kell jelentkezni
A kontenerbe van telepitve, a kontenerben van konfiguralva, es a kontenerben indul. Ezt ertettem az alatt, hogy a kontenerben fut.
- A hozzászóláshoz be kell jelentkezni
Miért nem jó a sima volume? Csinalsz egy data volumot majd annak osztod ki aminek akarod a volumesfrom-mal.
Persze dockerre gondolok.
- A hozzászóláshoz be kell jelentkezni
Kivéve ha nfs szervert akar, amivel másik gépre akarja átpöckölni a fájlrendszert.
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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ó.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
A cél egy netapp-szerű megoldás amikor több nfs szerver fut elszeparáltan.
Azt még nem tudom, hogy LXC vagy Docker lenne jobb vagy valami egész más megoldás.
- A hozzászóláshoz be kell jelentkezni
A megoldas meg nem biztos, de ellenzore biztosan akadsz ;)
- A hozzászóláshoz be kell jelentkezni
No igen, mert _annyra_ azért nem lesznek elszeparálva :D Ha lennének konkrét szempontok, akkor lehet hogy tudnánk tanácsot adni. Pl. ha már zfs van (amire van esély), akkor az is színezheti a képet :D
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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 hozzászóláshoz be kell jelentkezni
Mi az a más megoldás vagy a teljesen eltérő valami amit/amiket esetleg még érdekes lenne meggondolni?
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.
- A hozzászóláshoz be kell jelentkezni
Ha nekem kéne ilyesmi, akkor ezt próbálnám ki: https://github.com/nfs-ganesha/nfs-ganesha/wiki
Google találat, kb. annyit tudok róla amennyit itt leírtam :D
- A hozzászóláshoz be kell jelentkezni
"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
- A hozzászóláshoz be kell jelentkezni
A teljes virtualizációnál szerintem nem lenne lassabb az user-space szerver. A hardver virtualizáció IO overheadje nem elhanyagolható, ehhez pedig épp az kell.
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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]
- A hozzászóláshoz be kell jelentkezni
izé, Samba miért nem jó?
--
Gábriel Ákos
http://ixenit.com
- A hozzászóláshoz be kell jelentkezni
*sigh*
------------------------
{0} ok boto
boto ?
- A hozzászóláshoz be kell jelentkezni
Probaltam, de nem mukodik. Mi gluster-t hasznalunk helyette. Az megy. Hozzateszem centos 7-en es nem debianon hasznaljuk. Talan nem jelent kulonbseget.
- A hozzászóláshoz be kell jelentkezni
Mit próbáltál pontosan és mi lett a kialakítás, ha megkérdezhetem?
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
És melyik NFS-t próbáltad? Esetleg ezt: NFS-Ganesha?
- A hozzászóláshoz be kell jelentkezni
Nem, a kernel nfs-t. Userspace filesystemekben nem hiszek. :)
- A hozzászóláshoz be kell jelentkezni
Én használok Ganesha-t lxc jailben, van kérdésed?
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Meg tudod adni mit kell még belőni a containerben, hogy működjön a share?
- A hozzászóláshoz be kell jelentkezni
Semmi mást. Nekem ennyi a konfig, semmi buktatót nem találtam.
- A hozzászóláshoz be kell jelentkezni
Azt értem, mert konténeren kívül nekem is megy. Inkább arra gondoltam, hogy a konténer beállításoknál lehet valami.
Azt meg tudod mondani, hogy raktad össze a konténert?
- A hozzászóláshoz be kell jelentkezni
Debian Wheezy a host és a jail is és itt a konfig: http://paste.ubuntu.com/15566978/
- A hozzászóláshoz be kell jelentkezni
Meg tudnád adni azt a konkért parancsot amivel fordítottad a forrásból? Jó lenne tudni milyen opciókkal fordítottad?
- A hozzászóláshoz be kell jelentkezni
Szia,
Bar nem ertek a dologhoz, az az erzesem, hogy folyamatosan rossz kerdeseket teszel fel. Forditsuk meg a dolgot: mi az, amit eddig csinaltal, es hol akadtal el? Mi az, amit nem ertesz?
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Bárki tudja a megoldást?
- A hozzászóláshoz be kell jelentkezni
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;
}
- A hozzászóláshoz be kell jelentkezni
A kliensoldali logok érdekelnének a mount-olási kísérlet után. (verbose?)
------------------------
{0} ok boto
boto ?
- A hozzászóláshoz be kell jelentkezni
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
....
- A hozzászóláshoz be kell jelentkezni
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 ?
- A hozzászóláshoz be kell jelentkezni
Keresztbe tesztelés megvolt, nem lxc-ben azonos konfiggal működik.
Ugyan azon lxc-s nfs-másik klienssel nem megy.
Én egyértelműen az lxc-ben futtatott nfs hibára gondolok. Talán valami capabilities?
- A hozzászóláshoz be kell jelentkezni
Javaslom, hogy parse-old újra, amit írtam, vagy pontosítsd, hogy mit próbáltál ki, mert nem egyértelmű.
------------------------
{0} ok boto
boto ?
- A hozzászóláshoz be kell jelentkezni
Megvolt, kipróábltam több módszerrel.
Valami az lxc-ben fogja, valaki a linux capabilities-t mondta, hogy kellene állítani de fogalamam sincs hogyan.
- A hozzászóláshoz be kell jelentkezni
Én kérek elnézést - további sok sikert!
------------------------
{0} ok boto
boto ?
- A hozzászóláshoz be kell jelentkezni
Nem írok rá választ, mert akkor nem tudod szerkeszteni.
Légyszi a logot told pastebin-re és cseréld ki a linket.
Kösz
- A hozzászóláshoz be kell jelentkezni