Ezért érdemes sshfs-t -C kapcsolóval használni

1445465012_Database-CloudVan ugye az a protokoll – remélem ismerős -, hogy “sftp”. Tegyük fel, hogy van egy linuxos adattároló szervered és egy linuxos géped. Közvetlen fel tudod csatolni sshfs-el a távoli gép valamely mappáját, ha van rajta unix felhasználói fiókod és hozzáférésed.
Namost az sshfs-nek van egy -C, mint compression kapcsolója, ami a két gép közötti átviteli sebesség növelésében játszhat szerepet, mivel a két gép közötti adatfolyamot képes tömöríteni. Ehhez persze némi processzor kell mindkét oldalon, de egy HP microservernek sem konnyan meg a dolog (nálam az érintett adattároló gép).
Tehát ha linuxot használsz az alábbi paranccsal felcsatolhatod a távoli gép könyvtárát a helyi gépedre:

 sshfs -o allow_other,default_permissions -o IdentityFile=/helyi_szerver/publikus_kulcs winben@szerverem.hu:/tavoli_szerver/csatolasi_pont /helyi_szerver/csatolasi_pont -C -o reconnect;

 

Mi az eset akkor, ha Windows használok?

Igen, sokan vagyunk így, kipróbálhatunk egy csomó sshfs-t megvalósító alkalmazást. Ilyen a fizetős expandrive, vagy az ingyenes win-sshfs.

Részemről egyik sem nyerte el a tetszésemet többek között azért, mert instabilak voltak, suttyomban a program files-ba cache-eltek és nem is a valós állapotot mutatták sokszor…és legfőbb problémám volt, hogy láthatólag egyik sem szolgált a tömörítős megoldással, ami miatt (vagy még mellett) dög lassú volt az adatátvitel.

Nos, ha van egy kis memóriád fölösen a gépben akkor van egy szuper jó hírem – a probléma baromi jól orvosolható.

  1. Készíts egy linuxos virtuális gépet localhoston, ami NATolva csatlakozik a hálózatra, tehát a te géped oszt neki IP címet.
  2. Ha megvan a telepítés csatold fel a távoli mappát a virtuális géped egy helyi mappájába.
  3. Ezután telepíts sambát a virtuális gépre és oszd meg a felcsatolt mappa tartalmát.
  4. Tallózd be Windows Intézőben a sambán megosztott tartalmat és örülj. Az adatátvitel gördülékeny lesz és megfelelő tartalom esetében gyors.

Ha olyan kontentről van szó, ami jól tömöríthető akkor sokszoros sebességet érhetsz el “logikailag”, mint egyébként “fizikailag”, tehát a fizikai vonalon.

 

Bizonyításként hadd mutassam a feladatkezelőmet:

aa99259e10b2a668d37f45b32ea9d906

Itt éppen egy lemezképfájlt másoltam. A képen az látható, hogy a Total Commander 176 Mb/s-al tölti felfelé az adatot, a VMware NAT Service pedig a virtuális gépet jelképezi és látszik, hogy 47,5 Mb/s a “fizikai” adatfolyam. Tudni kell azt is, hogy a mérés idején a laptopom céges wifi routerre volt csatlakozva vezetéknélküli hálózaton és nem egy irodában lévő másik gépre, hanem az otthoni szerveremre tolta át az adatot – ennek köszönhető, hogy csak ~50 Mbit környékén történt az adatátvitel. A másolás idején 50-70% között volt a 1.5 GHz-es HP microserverem cpu terheltsége (mivel kétmagos így 200%-ból), és 0,93-as volt a 15 perces átlag load.

 

Akik kicsi internetsebességgel rendelkeznek (100 Mbit alatt) és távoli szerverre dolgoznak bőven megfelel és tűrhetően is működik az ExpanDrive. Ha viszont helyi 100 megás hálón (vagy azzal egyenértékű neten) szeretnénk Windows-on sshfs kapcsolódást érdemesebb efféle perverzióhoz folyamodnunk.

Email értesítés magas load esetén

Az első if-ben írj be egy load értéket. Ha a load magasabb, mint a beírt szám akkor küld emailt a jelenlegi load-okról és a legcpuigényesebb processzekről.

Mentsd el a kódot egy php file-ba, majd rakd be cron-ba, ahol beállíthatod, hogy pl fusson le negyedóránként. Így hamar értesülhetsz arról, ha ddos van vagy bármi más szervert terhelő anomália.

<?php

 

$load = sys_getloadavg();

$out = “”;

if ($load[2] > 2) {
$out = “load: “.$load[0].” “.$load[1].” “.$load[2].”\n\n”;
$return = array();
exec(“ps aux | sort -rk 3,3 | head -n 13″, &$return);

for ($i = 0; $i < count($return); $i++) {
$out .= $return[$i].”\n”;
}
mail(“admin@email.cim”, “Server load: “.$load[2], $out);
}

?>

Memcached on apache2&php

Őszintén szólva eddig féltem a témától, mint a tűztől. Plusz egy különálló process, kitudja mennyire stabil, ha leáll gáz van és stb. Aztán most, hogy az egyik projektben a munkaadóm már hetek óta hajtogatta, hogy szükség lesz rá, mert gyorsabb, mint a HDD-s cache úgy döntöttem, hogy szabad óráimban felteszek egy linuxot vm-be és próbálkozok.

memcached

Felvetődhet a kérdés, hogy miért is jó ez. Egyszerűen szólva a  Memcache nagy előnye, hogy közvetlenül a memóriában tárolja az adatokat, ami a lehető leggyorsabb módszer az adatok elérésére – írására és olvasására.

 

Tehát az alábbi néhány egyszerű lépéssel végeztem el a telepítést:

apt-get install memcached

Telepítés után megnyitjuk a konfigurációt és megnöveljük a használható megabájtokat. 128 helyett lehet több és kevesebb is, én például 256-ot állítottam be:
nano /etc/memcached.conf

-m 64 sort írjuk át erre: -m 128

Aztán memcache újraindítás:
service memcached restart

php5-be “beépítjük” a memcache-t:
apt-get install php5-memcached

Apacs’ restart és készen is vagyunk:
service apache2 restart

 

Aztán egy php fileba toljuk be ezt:

<?php
$mc = new Memcached();
$mc->addServer(“127.0.0.1”, 11211);

$mc->set(“testkey”, “Mindenki örül, működik a memcache! :)”);
print $mc->get(“testkey”);

 

Ha futtatás után azt látjuk a képernyőn, hogy “Mindenki örül, működik a memcache! :)” akkor már végeztünk is.

A mellékelt kódsorok alapján láthatjuk, hogy OOP szintű a dolog, set-get a beírás és kiolvasás. Kulcs-értékpárokkal dolgozunk, tehát a key az lényegében a kulcs, azonosító – a set második paramétere (value) pedig maga a felvitt adat.

Fontos még megjegyeznem, hogy vannak esetek amikor szeretnénk, hogy egy felvitt adat egy idő után lejárjon. Először ezt manuálisan akartam megoldani, így hosszasan keresgéltem modify/set date után unix időben, de aztán rájöttem, hogy a megoldás sokkal egyszerűbb: a set metódus harmadik paramétere egy integer, ami default 0 – ez állítja be az adat timeout-ját. Tehát ha beállítunk egy >0 értéket akkor a rögzített adat annyi ideig lesz érvényes, utána automatikusan megsemmisül. Így a szemétgyűjtést nem valós időben kell végeznünk, mint a file szintű cache-nél, kódunk ezért is gyorsabb lesz (hurrá!).

 

Memcache admin/stat felület

Jó kis statisztikás app készült hozzá, amit elég kicsomagolnunk és bemásolnunk valahova, majd böngészőben a szerverről megnyitni. Letölthető innen!

NTFS partíció csatolása debian renszerbe

ntfs-1Szenvedtem vele egy sort, amikor ezzel a módszerrel próbálkoztam:

mount /dev/sdxy  /mnt/akarmi

 

Működni működik, lehet olvasni a meghajtót. De aztán szükség esetén kiderül, hogy csak olvasásra csatolódik fel az ntfs meghajtó. Ahhoz, hogy tudjuk írni – kell egy kicsit maszekolni is.

Első körben, egyszeri alkalommal toljuk fel az ntfs-3g csomagot

apt-get install ntfs-3g

aztán:

mount -t ntfs-3g /dev/sdxy   /mnt/akarmi