200 mount chroot-hoz

Fórumok

Több mint 200 chroot környezetet szeretnék kialakítani PHP-FPM számára. Mivel a PHP használ mysql adatbázist, minden chroot környezetben elérhetővé kell tennem a /var/run/mysql mappát.
Jelenleg ezt a mount --bind paranccsal oldom meg, de ilyen mennyiségnél ez már eléggé időigényes a művelet, és nem is igazán tetszik.
Van bárkinek alternatív ötlete? Sajnos én nem találtam más megoldási lehetőséget. Jó lenne valamilyen mappa hardlink, bár direktben ilyet csinálni nem lehet.

Hozzászólások

Az nem jo, ha a mysql-edet halozaton keresztul ered el? PG tudom, hogy tud ilyet, ha jol emlekszem, ez is.

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

socat-tal tudsz unix-listen+unix-connect kapcsolatot csinalni, ez futhat a "hoston" is, igy nemkell tcp-vel szarakodni

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Köszönöm, tökéletes! Sokkal gyorsabb, mint a mount. Remélem összességében kevesebb erőforrást is eszik. Kezelni mindenképp könnyebb.
Mivel gyakorlatilag egyetlen olyan példát sem találtam a neten, ahol a chrootban futó mysql szerver eléréséhez a socat parancsot használták volna, álljon itt a csatlakoztató bash kód, hátha valakinek még szüksége lesz rá:


[ -e $CHROOT/var/run/mysqld/mysqld.sock ] || socat UNIX-LISTEN:$CHROOT/var/run/mysqld/mysqld.sock,fork,user=mysql,group=mysql,mode=777 UNIX-CONNECT:/var/run/mysqld/mysqld.sock &

Tetszőleges számú ilyen parancs egymás után megadható.
A kód többszöri futtatása nem okoz hibát.
Az összes forward pedig a


killall socat

paranccsal leállítható.
Egyszerű és nagyszerű. :)

Ilyet ne csinalj. Hasznalj tcp-t.
A chroot helyett kontenereket.

Amugy nem kell a full mappat.

Akar azt is csinalhatod, ha nincsenek kulon particion.
Egyebkent azt mondom, h a socket file-t magat is mountolhatod v. meginkabb azt a konyvtart, amiben a socket file van.
Az adatbazis file-okat felesleges.

De meg1x, ne csinald, magad fogod szopatni vele.
Amugymeg chroot...a 2000-es evek evekben meg elfogadhato volt, de most mar kontenerizalni javasolt.

Jelenleg is a /var/run/mysqld mappákat mountolom csak, de ez is időigényes.

Nem tudom, nálam van 100-as nagyságrendben mount -o bind, és nem lassú. A docker is használja ezt a funkciót, nem tűnt fel, hogy pont ez lassú lenne.

A konténer nem hiszem, hogy kevesebb erőforrást enne, mint a php-fpm chroot-ja, még mountokkal együtt sem.

Kb. pont ugyanannyi erőforrást eszik. A lényeges különbség, hogy egy valag erőforrást/rendszerhívást is tud virtualizálni, amit a sima chroot nem tesz meg (pl. PID name space), illetve ezt az egészet szabványos leíróval teszi, ergó zéró energiával tudod vinni a konténert egyik gépről a másikra.