Qmail / Vpopmail Clustering

Diyelim ki cok fazla sayida kullanici barindiran bir mail domaininiz var. Ancak o kadar cok islem trafigi yasaniyor ki, tek bir mail servera guvenip mail trafiginizi yonetmekten cekiniyorsunuz.

Iste bu asamada bir clustering (kumeleme) ihtiyaci doguyor; ve qmail ile clustering yapmak oldukca kolay. Bu yazimda genisletilebilir bir qmail clustering yapisinin nasil yapilabilecegini anlatmaya calisacagim.

Oncelikle, mysql ile enterge edilmis calisan iki adet qmail/vpopmail serveriniz oldugunu varsayiyorum.

Her iki qmail server ayni domainleri yonetecegi icin qmail ve vpopmail’in bazi dizinlerini NFS uzerinden paylastirmaniz gerekiyor. NFS uzerinden paylastirma isini, iki sekilde yapabilirsiniz, sadece NFS server olarak calisacak ve yeterli disk alani mevcut olan bir server –hatta S.A.N baglantisi olan bir sever- kullanabileceginiz gibi, qmail serverlarinizdan birisini ayni zamanda NFS server olarak kullanabilir ve gerekli dizinleri diger qmail server(lar)a paylastirabilirsiniz.

Qmail ve Vpopmail’in paylastirilmasi gereken dizinleri sunlar;

~vpopmail/domains
/var/qmail/users

Ve istege gore:

~vpopmail/bin
/var/qmail/control. (control dizinini tek bir alandan kullanmak istemeniz durumunda, bu dizin altinda bulunan me isimli qmail control dosyasini qmail serverlara /etc/me seklinde linklemeniz gerekmektedir.

FreeBSD uzerinde bir NFS uygulamasini nasil gerceklestirebileceginiz ile ilgili iki guzel dokuman:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-nfs.html
http://www.freebsddiary.org/nfs.php

NFS asamasini hallettikten sonra, yapmaniz gereken ikinci sey ise vpopmail’in kullandigi mysql uzerinde bulunan ve kullanicilarin ev dizini yollarini, kullanici adlarini ve sifrelerini tutan vpopmail database’ini master/slave ya da master to master seklinde replike etmek.

Bir master belirledikten sonra master/slave seklinde bir replikasyon islemi yaptiginiz zaman, vpopmail yeni eklenen userlarin bilgilerini master db’ye yazar buradan da slave(lere) replike edilir. Cluster’a dahil herhangi bir qmail uzerinde yapilan authentication islemi ise ilgili qmail server uzerinde calisan slave db uzerinden yapilir.

Master/Slave seklinde bir replikasyon yapmak icin yararlanabileceginiz iki dokuman.

http://www.syslogs.org/2009/02/mysql-replikasyon-yapilandirmasi/
http://www.howtoforge.com/mysql_database_replication

Replikasyon islemini yaptiktan sonra vpopmail kurulumunda olusturmus oldugunuz ve vpopmail’in database ile konusmasi icin gerekli olan vpopmail.mysql dosyanizi su sekilde duzenleyip, yukarida ki yazma okuma isleminin gerceklestirilmesini saglayabilirsiniz.

# Read-only DB
localhost|0|vpopmailuser|vpopmailsifre|vpopmail_db_name
# Write DB
Master_db_server_ipsi|3306|vpopmailuser|vpopmailsifre|vpopmail_db_name

Gelelim son asamaya;

Artik calisan bir cluster yapimiz olduguna gore son asama olan load balancing olayina girebiliriz. Load balancing yapmak icin bir cok yontem ve tool kullanabileceginiz gibi bir smtp server icin olabilecek en uygun yol olan round robin dns yontemini kullanabilirsiniz.

Round robin dns olayi, dns’te ayni domain icin birden fazla host belirtilmesi suretiyle, gelen dns querylerinin round robin cevaplandirilmasindan ibarettir. Mesela, cluster calisan iki adet qmail serveriniz var ise bu qmail serverlar uzerinde calisan bir domain’e ait MX ve A kayitlarinin su sekilde yaparsak;

domain.com MX preference = 10, mail exchanger = qmai1.domain.com
domain.com MX preference = 10, mail exchanger = qmail2.domains.com

mail.domain.com IN A qmail1.domain.com
mail.domain.com IN A qmail2.domain.com

domain.com’a atilacak mailler icin yapilan dns sorgulamalarinda cevaplar, round robin algoritmasina gore verilecektir. Bu sekilde her iki qmail serveriniza da istek gelecek ve tek bir server uzerinde yigilma onlenerek load balancing islemi gerceklestirilecektir.

Tabii ayni durum mail clientlerin mailleri cekmek uzere baglanti istekleri icin yapilan dns sorgularinda da gecerlidir.

Son olarak, qmail/vpopmail clusterin icin inceleyebileceginiz bir link daha.
http://www.shupp.org/maps/ispcluster.html

You may also like...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir