Optimizacija shranjevanja pošte v Zimbra Collaboration Suite

V enem od naših prejšnji članki, posvečenega načrtovanju infrastrukture pri implementaciji Zimbra Collabortion Suite v podjetje, je bilo rečeno, da je glavna omejitev pri delovanju te rešitve I/O hitrost diskovnih naprav v poštnih shrambah. Dejansko v času, ko več sto zaposlenih v podjetju hkrati dostopa do istega pomnilnika pošte, širina kanala za pisanje in branje informacij s trdih diskov morda ne bo zadostovala za odzivno delovanje storitve. In če za majhne namestitve Zimbre to ne bo posebna težava, potem lahko v primeru velikih podjetij in ponudnikov SaaS vse to povzroči neodzivno elektronsko pošto in posledično zmanjšanje učinkovitosti zaposlenih ter kršitev SLA. Zato je treba pri načrtovanju in upravljanju obsežnih instalacij Zimbra posebno pozornost nameniti optimizaciji delovanja trdih diskov v poštnih shrambah. Oglejmo si dva primera in poskusimo ugotoviti, katere metode za optimizacijo obremenitve pomnilnika diska lahko uporabimo v vsakem od njih.

Optimizacija shranjevanja pošte v Zimbra Collaboration Suite

1. Optimizacija pri načrtovanju obsežne namestitve Zimbra

Med fazo načrtovanja visoko obremenjene namestitve Zimbra se bo moral skrbnik odločiti, kateri sistem za shranjevanje bo uporabil. Če se želite odločiti o tem vprašanju, morate vedeti, da glavno obremenitev trdih diskov prihaja iz MariaDB DBMS, vključenega v Zimbra Collaboration Suite, iskalnika Apache Lucene in shrambe blob. Zato je za delovanje teh programskih izdelkov v pogojih visoke obremenitve potrebna uporaba hitre in zanesljive opreme.

V normalnih pogojih je Zimbro mogoče namestiti tako na RAID trdih diskov kot na shrambo, povezano prek protokola NFS. Za zelo majhne namestitve lahko Zimbro namestite na običajen disk SATA. Vendar pa v kontekstu velikih inštalacij vse te tehnologije kažejo različne pomanjkljivosti v obliki zmanjšane hitrosti snemanja ali nizke zanesljivosti, kar ni nesprejemljivo ne za velika podjetja in še posebej za ponudnike SaaS.

Zato je v velikih infrastrukturah Zimbra najbolje uporabiti SAN. Prav ta tehnologija je trenutno sposobna zagotoviti največjo prepustnost pomnilniških naprav, hkrati pa zaradi zmožnosti povezovanja velike količine predpomnilnika njena uporaba praktično ne predstavlja pomembnega tveganja za podjetje. Dobro je uporabiti NVRAM, ki se uporablja v številnih omrežjih SAN za pospešitev pisanja. Bolje pa je onemogočiti predpomnjenje posnetih podatkov na samih diskih, saj lahko pride do nepopravljive škode na mediju in izgube podatkov, če pride do težav z napajanjem.

Kar zadeva izbiro datotečnega sistema, bi bila najboljša izbira uporaba standardnega Linux Ext3/Ext4. Glavna niansa, povezana z datotečnim sistemom, je, da ga je treba namestiti s parametrom -noatime. Ta možnost bo onemogočila funkcijo beleženja časa zadnjega dostopa do datotek, kar pomeni, da bo močno zmanjšala obremenitev pri branju in pisanju. Na splošno morate pri ustvarjanju datotečnega sistema ext3 ali ext4 za Zimbro uporabiti naslednje parametre pripomočka mke2fs:

-j — Za ustvarjanje dnevnika datotečnega sistema Ustvarite datotečni sistem z dnevnikom ext3/ext4.
-L IME - Za ustvarjanje imena nosilca, ki ga nato uporabite v /etc/fstab
-O dir_index - Za uporabo zgoščenega iskalnega drevesa za pospešitev iskanja datotek v velikih imenikih
-m 2 — Rezervirati 2 % nosilca v velikih datotečnih sistemih za korenski imenik
-J velikost=400 — Ustvariti veliko revijo
-b 4096 — Za določitev velikosti bloka v bajtih
-ja 10240 - Za shranjevanje sporočil mora ta nastavitev ustrezati povprečni velikosti sporočila. Na ta parameter morate biti zelo pozorni, saj njegove vrednosti pozneje ni mogoče spremeniti.

Priporočljivo je tudi omogočiti dirsync za shranjevanje blob podatkov, shranjevanje metapodatkov iskanja Lucene in shranjevanje čakalne vrste MTA. To je treba storiti, ker Zimbra običajno uporablja pripomoček fsync za zajamčeno pisanje bloba s podatki na disk. Ko pa poštna trgovina Zimbra ali MTA ustvari nove datoteke med dostavo sporočila, je treba na disk zapisati spremembe, ki se zgodijo v ustreznih mapah. Zato, tudi če je bila datoteka že zapisana na disk z uporabo fsync, zapis njegovega dodajanja v imenik morda ne bo imel časa zapisati na disk in se posledično lahko izgubi zaradi nenadne okvare strežnika. Zahvaljujoč uporabi dirsync tem težavam se je mogoče izogniti.

2. Optimizacija z delujočo infrastrukturo Zimbra

Pogosto se zgodi, da se po več letih uporabe Zimbre število njenih uporabnikov močno poveča, storitev pa je iz dneva v dan manj odzivna. Izhod iz te situacije je očiten: v infrastrukturo morate samo dodati nove strežnike, da bo storitev znova delovala tako hitro kot prej. Medtem pa ni vedno mogoče takoj dodati novih strežnikov v infrastrukturo, da bi povečali njeno zmogljivost. Vodje informatike morajo velikokrat dolgo usklajevati nakup novih strežnikov z računovodstvom ali varnostno službo, poleg tega jih pogosto razočarajo dobavitelji, ki lahko z zamudo dobavijo nov strežnik ali celo napačno.

Seveda je najbolje, da svojo infrastrukturo Zimbra zgradite z rezervo, da boste vedno imeli rezervo za njeno širitev in ne boste odvisni od nikogar, če pa je napaka že storjena, lahko IT-vodja samo zgladi njene posledice, saj kolikor je mogoče. Na primer, vodja IT lahko doseže majhno povečanje produktivnosti tako, da začasno onemogoči sistemske storitve Linux, ki med delovanjem redno dostopajo do trdih diskov in lahko zato negativno vplivajo na delovanje Zimbre. Torej lahko začasno onemogočite:

autofs, netfs - Oddaljene storitve odkrivanja datotečnega sistema
skodelice — Storitev tiskanja
xinetd, vsftpd - Vgrajene storitve *NIX, ki jih verjetno ne boste potrebovali
preslikava vrat, rpcsvcgssd, rpcgssd, rpcidmapd — Storitve klica oddaljenih postopkov, ki se običajno uporabljajo v povezavi z omrežnimi datotečnimi sistemi
dovecot, cyrus-imapd, sendmail, exim, postfix, ldap — Dvojniki glavnih pripomočkov, vključenih v Zimbra Collaboration Suite
slocate/posodobljenob - Ker Zimbra vsako sporočilo shrani v ločeno datoteko, lahko vsakodnevno izvajanje storitve updatedb povzroči težave, zato je to mogoče storiti ročno med najmanjšo obremenitvijo strežnikov

Prihranek sistemskih virov zaradi onemogočanja teh storitev ne bo zelo pomemben, vendar je tudi to lahko zelo koristno v razmerah blizu višje sile. Ko je nov strežnik dodan infrastrukturi Zimbra, je priporočljivo, da ponovno omogočite prej onemogočene storitve.

Delovanje Zimbre lahko optimizirate tudi tako, da storitev syslog premaknete na ločen strežnik, tako da med delovanjem ne obremenjuje trdih diskov poštnih shramb. Za te namene je primeren skoraj vsak računalnik, tudi poceni Raspberry Pi z eno ploščo.

Vir: www.habr.com

Dodaj komentar