Linux sunucusunu yüksek kullanılabilirlik kümesine kurun

İçindekiler

Kaç kez hizmetlerimize sahip olmak, daha doğrusu hizmetlerimizi her zaman kullanılabilir durumda tutmak zorunda kaldık ve kaç kez sunucumuzun sabit diskinin hasar görmesi ve yedeğimizin olmaması, iyi, bunları düşünün. koşullar, bunu yaratmaya karar verdim sunucularımızın veya daha doğrusu hizmetlerimizin her zaman çevrimiçi olmasını sağlamak için öğretici.

Dersin Linux'ta ileri düzey kişiler için tasarlandığını göz önünde bulundurarak bu sefer kullanacağım temel sistemin kurulumu gibi konulara değinmeyeceğim. CentOS6 64bit son güncellemesinde. Aynı şekilde sadece kümenin çalışması için kesinlikle gerekli olanlardan (yüksek kullanılabilirlikli sunucular) bahsedeceğim.

Ayrıca bu kılavuzun web servisini her zaman aktif tutma ihtiyacına yönelik olduğu yorumunu da yapıyorum, diğer servislerle başarılı bir şekilde kullanmama rağmen, başlangıç ​​olarak veya daha iyisi, başlangıç ​​olarak, en basit şeyin şu olduğunu düşünüyorum. bir sunucu kümesi ağı oluşturun.

Lafı fazla uzatmadan güzel şeylere geçelim.

Sistem gereksinimleri.1. RAM bellek 1 GB
2. Sabit Disk 80 GB
3. Celeron işlemci
4. Küme için veri bölümü (oluşturmak istediğiniz boyut ne olursa olsun)
5. CentOS 6 İşletim Sistemi (en son güncellemesinde)

Gereksinimleri karşılıyorsanız, başlayalım Linux küme kurulumu.

Bir sonraki şey, bölümlerin her iki sunucudaki senkronizasyonu için DRBD'yi kurmaktır, bunun için gereklidir. kabuğu çalıştır aşağıdaki talimatlar:

1. Sistem havuzları listesine ELRepo'yu ekleyin

 [root @ node1 ~] rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

2. drbd (Dağıtılmış Çoğaltılmış Blok Aygıtı) yardımcı programlarını ve kmod paketlerini kurun

 [root @ düğüm1 ~] yum kurulumu -y kmod-drbd83 drbd83-utils
(Şahsen, 8.4 bana bazı dağıtımlarda sorun çıkardığı için 8.3 kullanıyorum)

3. Drbd sistem çekirdeğine eklenir veya eklenir

 [root @ düğüm1 ~] modprobe drbd

4. drbd için kaynak dosyası oluşturulmalıdır
/etc/drbd.d/mydrbd.res adresinde bulunur; burada mydrbd.res dosyanın adıdır ve bu, .res uzantısını koruduğumuz sürece istediğimiz herkes tarafından değiştirilebilir; Bu dosya her iki sunucuda da oluşturulmalıdır veya dosya doğru yapılandırıldığında ikinci düğüme kopyalanır; yapılandırma aşağı yukarı aşağıdaki gibi olacaktır:

 kaynak mydrbd {#bu, protokol C kaynağının adıdır; başlangıç ​​{wfc-zaman aşımı 180; degr-wfc-timeout 120;} # Slave cihaz için 180 saniye bekleme, 120 saniye, cevap vermezse bozulur ve ikincil disk olarak kalır {on-io-error detach; } net {cram-hmac-alg "sha1"; paylaşımlı-gizli "gizli anahtar";} #Bu kısımda sha1 şifrelemeli bir anahtar belirtilir, bu anahtar iki düğüm arasındaki iletişim içindir. syncer {rate 100M;} #senkronizasyon hızı, Gigabit ağ kartımızın olması önemli değil, 1000M'de çalışmıyor, önerilen maksimum hız 100M'dir (10M ile kurdum ve harika çalışıyor, biraz yavaş ilk senkronizasyon ama sonra farkı görmüyorsunuz) node1'de {device / dev / drbd0; # burada drbd için ayrılmış cihazın hangisi olduğunu belirtiyoruz, farklı veriler için birden fazla cihaza veya SAMBA, MySQL gibi farklı hizmetlere sahip olabiliriz, diğerleri arasında disk / dev / md2; #drbd adresi 172.16.0.1:7788 için kullanılacak bölümü belirtin; # Ağımızın kapsama alanı dışında bir IP belirtiyoruz, belirtmekte fayda var, ağ kablosunun sunucular arasında bir switch veya hub'dan geçmeden doğrudan bağlanması gerektiğini belirtmekte fayda var, bunlar yeni model ağ kartları ise crossover kablo gerekli değildir. meta disk dahili; } node2'de {# ikincinin özellikleri birincininkiyle aynı olmalı, sadece ip adresi değişiyor, aynı port olmalı, çünkü birlikte 2 kümemiz varsa, çakışacaklar ve çalışmayacaklar uygun şekilde, birden fazla kümeye sahip olmak istiyorsak, farklı bağlantı noktaları kullanılması önerilir, bu bağlantı noktalarının her iki düğümde de aynı olması gerektiğini söylemeye gerek yok. cihaz / dev / drbd0; disk / dev / md2; adres 172.16.0.2:7788; meta disk dahili; }}

BÜYÜT

5. Aşağıdaki ana bilgisayar dosyası yapılandırmasıdırBu, sunucuların yerel ağın IP'si tarafından değil, senkronizasyon IP'si üzerinden aranması ve böylece hizmetlerle çakışmaların önlenmesi içindir:

 / etc / hosts 192.168.1.1 düğüm1 #yerel ağ bölümündeki düğüm1'in adı 192.168.1.2 düğüm2 #yerel ağ bölümündeki düğüm2'nin adı 172.16.0.1 düğüm1 #senkronizasyon ağ bölümündeki düğüm1'in adı 172.16.0.2 düğüm2 #senkronizasyondaki düğüm2'den gelen ad ağ kesimi

6. drbd için depolama birimi başlatıldı

 [root @ düğüm1 ~] drbdadm create-md disk1

7. drbd hizmeti veya hizmetçisi başlar

 /etc/init.d/drbd başlangıç

8. Birincil olmasını istediğimiz düğümde aşağıdaki komutu uyguluyoruz

 drbdadm - -eş-veri-verilerinin üzerine yaz birincil disk1

9. Her iki düğümün senkronizasyonunu izliyoruz
Bunun için yürütüyoruz:

 kedi / proc / drbd
Yukarıdaki komuttan gelen yanıt aşağıdakine benzer:
 sürüm: 8.3.15 (api: 88 / proto: 86-97) GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c phil @ Build32R6, 2012-12-20 20:23:49 1: cs: SyncSource ro: Birincil / İkincil ds: UpToD / Tutarsız C rns: 1060156 nr: 0 dw: 33260 dr: 1034352 al: 14 bm: 62 lo: 9 pe: 78 ua: 64 ap: 0 ep: 1 wo: f oos: 31424 [===== =============>.] sync'ed: %97,3 (31424/1048508) K bitiş: 0:00:01 hız: 21,240 (15,644) K/sn # Burada şunu görebiliriz Senkronizasyon %97,3'e gidiyor ve bunun birincil düğüm olduğu belirtildi ve senkronizasyon henüz bitmediği için ikincil düğüm tutarsız görünüyor. #Bittiğinde, cat / proc / drbd'yi tekrar çalıştırırız ve aşağıdakilere sahibiz: version: 8.3.15 (api: 88 / proto: 86-97) GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by phil @ Build32R6, 2012-12-20 20 : 23: 49 1: cs: Bağlı ro: Birincil / İkincil ds: UpToDate / UpToDate C r-ns: 1081628 nr: 0 dw: 33260 dr: 1048752 al: 14 bm: 64 lo: 0 pe: 0 ua: 0 ap : 0 ep: 1 wo: foos: 0 # UpToDate mesajını döndürerek senkronizasyonun tamamlandığını ve drbd bölümlerinin tamamen aynı olduğunun farkındayız.

10. Sıradaki şey cihazımızı drbd formatlamakBunun için yürütüyoruz:

 mkfs.ext3 / dev / drbd1
Ben ext3'ü kullanıyorum çünkü bana iyi bir stabilite verdi ama ext4'ü de kullanabilirdik, ext3'ün altında herhangi bir türde bölüm kullanmanızı önermiyorum.

Şimdiye kadar / dev / drbd1 bölümünü sistemin herhangi bir bağlama noktasına manuel olarak monte edebiliyoruz, benim durumumda / home'u montaj için kullanıyorum çünkü her iki düğümde de kayıtlı kullanıcıların web sayfaları için kendi dizinleri var, bu nedenle Koşarım:

 mount -t ext3 / dev / drbd1 / ana sayfa
Ve her iki sunucuda da veri replikasyonu için kullanıcıları oluşturmaya başladım, aşağıdakiler kalp atışı kurulumu, sunucuları kendi aralarında izlemek için kullanılan ve birincilin herhangi bir nedenle düşmesi durumunda ilgili değişiklikleri yapmaktan kimin sorumlu olacağı ve Sistemin işlevselliğini sağlamak için ikincil olanı birincil hale getiren uygulama.

İçin kalp atışı kurulumu sadece aşağıdaki adımlar izlenmelidir. Depo, aşağıdaki komutla indirilmek üzere kurulur:

 rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Dosyayı düzenleyin:
 epel.repo /etc/yum.repos.d/epel.repo 
6 numaralı satırı değiştir 'Etkinleştir = 1 ile etkinleştir = 0'; vi veya nano editörlerini dilediğiniz gibi kullanabilirsiniz.
 [epel] name = Enterprise Linux 6 için Ekstra Paketler - $ basearch # baseurl = http: //download.fedoraproject.org/pub/epel/6/$basearch mirrorlist = http: //mirrors.fedoraproject.org/metalink? = epel-6 & arch = $ basearch failovermethod = öncelik etkin = 0 # Bu, düzenlememiz gereken satırdır Heartbeat'i aşağıdaki komutla yükleyin: yum -enablerepo = epel install heartbeat Kurulum bittiğinde bize benzer bir şey söyleyecektir. için: Yüklendi: kalp atışı .i686 0: 3.0.4-1.el6 Tamamlandı! 
Yükleme işlemi tamamlandıktan sonra, kalp atışının çalışması için 3 temel dosyayı düzenlemeniz gerekir; /etc/ha.d'de bulunur
  • yetki anahtarları
  • ha.cf
  • kaynaklar

dosyayı açıyoruz yetki anahtarları aşağıdaki komutla:

 vi /etc/ha.d/authkeys
Aşağıdaki satırlar eklenir:
 auth 1 1 sha1 kalp atışları arasındaki bağlantı için key # Bu satırda her bir düğümün kalp atışlarının birbiriyle iletişim kurması için hangi anahtarın olacağını tanımlıyoruz, drbd'de kullanılan ile aynı veya farklı olabilir.
Dosya izinlerini değiştiriyoruz yetki anahtarları böylece sadece kök tarafından okunabilir:
 chmod 600 /etc/ha.d/authkeys
Şimdi ikinci dosyayı düzenliyoruz:
 vi /etc/ha.d/ha.cf
Aşağıdaki satırları ekliyoruz:
 logfile / var / log / ha-log # sistem günlüğü gelecekteki hatalar için etkinleştirildi logfacility local0 keepalive 2 ölü zaman 30 # sistem düğüm1'i çalışmaz olarak bildirmek için 30 saniye bekler initdead 120 # sistem düğümün diğerini beklemesi için 120 saniye bekler . bcast eth0 # sunucular arası haberleşmenin iletileceği ethernet kartı belirtilir, burada dikkat edilmesi çok önemlidir çünkü burada hangi ağ kartının yerel ağa gideceğini ve hangi senkronizasyonun yönlendirileceğini tanımlıyoruz udpport 694 # senkronizasyon portu belirtilmiş , drbd'de olduğu gibi, birden fazla sunucumuz olabilir ve her biri kendi bağlantı noktası tanımlı auto_failback off # ile eşleşebilir, onu kapalı olarak işaretleyerek, düğüm1'in bir kez hasar gördüğünde ve bozulduğunda birincil olarak geri dönmesini veya geri dönmeye çalışmasını engelleriz, böylece başka bir düğüm düğümü düğüm1 düğüm2 ile çakışma yaratırız # her iki düğümün de isimlerini belirtiyoruz. 

BÜYÜT

Yapılandırmayı bitirmek için haresources dosyasını şu komutla düzenlemeliyiz:

 vi /etc/ha.d/haresources
Aşağıdaki satırları ekleyin:
 node1 192.168.1.10/24/eth0 drbddisk :: mydrbd Dosya sistemi :: / dev / drbd0 :: / home :: ext3 #bu satır, veri bölümünün birincil düğüm1 olarak adlandırılan düğüme monte edilmesinden sorumludur 192.168.1.10/24/ eth0 httpd #bu satır, apache hizmetini veya web sunucusunu birincil olarak başvurulan düğüme göre tanımlamaktan sorumludur.

BÜYÜT

3 dosya düğüm2'ye kopyalanmalıdır, aşağıdaki komut bununla ilgilenecektir:

 scp -r /etc/ha.d/root@node2:/etc/
Dosya düzenlenmeli httpd.conf böylece sanal ipten gelen istekleri dinler, bu durumda 192.168.1.10:
 vi /etc/httpd/conf/httpd.conf
Satır eklendi veya değiştirildi Dinle 192.168.1.10:80
Değiştirilen dosya ikinci sunucuya kopyalanır:
 scp /etc/httpd/conf/httpd.conf root @ düğüm2: / etc / httpd / conf /
Kalp atışı hizmetini her iki düğümde de başlatıyoruz:
 /etc/init.d/kalp atışı başlangıcı
Bununla yüksek kullanılabilirlikli sunucumuz hazır, sadece internet tarayıcımıza girip 192.168.1.10 ipini koymak veya alan yönetimi için seçtiğiniz bir paneli kurmak ve kayıtlı sayfalara veya alan adlarına erişmek için ilgili kullanıcıları oluşturmaktan ibaret. sunucuda.

Yüksek kullanılabilirlikli sunucu, bu öğreticinin başında daha önce belirtildiği gibi kullanılabilir: e-posta sunucusu, web sunucusu, veritabanı sunucusu, samba sunucusu diğerleri arasında; Aynı şekilde donanım arızalarından kaynaklanan bilgi kaybını önlememize de yardımcı olur ve disk birimlerine ister donanım ister yazılım olarak baskınlar yaparak bunu daha da güçlendirebiliriz, sistemi korumak için disklerin baskınlarda olması asla çok fazla değildir.

Ancak, yüksek kullanılabilirlikli sunucu sorunlardan veya hatalardan muaf değildir, bir düğüm bozulduğunda ne olduğunu görmek için kalp atışı günlüğüne gidebiliriz, bu, içindeki haresources yapılandırmasında atanan dosyaya erişerek elde edilir. /etc/ha.d

Aynı şekilde her iki sunucuyu da nedense yeniden başlattığınızda birincil/ikincil olarak başlamayıp birincil/bilinmeyen ve bilinmeyen/ikincil olarak başlamaları söz konusu olabilir.

BÜYÜT

Bunu çözmek için aşağıdaki adımları izlemeliyiz.

Düşen düğümün kabuğuna şunu yazıyoruz:

 drbdadm ikincil kaynak
Daha sonra:
 drbdadm kaynak bağlantısını kes
Ve daha sonra:
 drbdadm - --discard-my-veri bağlantı kaynağı
Son olarak, hayatta kalan düğümde veya birincilde şunu yazıyoruz:
 drbdadm bağlantı kaynağı
Şimdi, hayatta kalan düğümden düşen düğüme düğümlerin yeniden senkronizasyonunu başlatacak, bu, tuşa basıldığında hemen başlayacak "Girmek" talimatta 4.

Burada ne olduğu biliniyor. Bölünmüş beyin, bu, herhangi bir nedenle birincil düğüm başarısız olduğunda ve bozulduğunda meydana gelir, bu gerçekleştiğinde, düşen düğümü derinlemesine incelemeniz ve analiz etmeniz şiddetle tavsiye edilir ve mevcut herhangi bir sorunu çözmek için onu kümeye yeniden dahil etmeden önce, aynı zamanda bu düğümün tüm işletim sistemini yeniden yüklemek gerekli ve sorunsuz bir şekilde, senkronizasyon için kümeye ikincil olarak dahil edin ve bu durumda, senkronize edildikten sonra birincil olarak değiştirin.

Son olarak, vurgulamak istiyorum küme sağlığının düzenli olarak gözden geçirilmesiYüksek performans için bilgisayar felaketlerinden bir adım önde olmanın her zaman iyi olduğunu çok iyi biliyoruz; BT personeli olarak, ait olduğumuz şirket veya şirketlerin verileriyle ilgilenme sorumluluğu bize düştüğünden, ek bir not olarak, düğümlere ve düğümlere her zaman alternatif bir birimde yedek bulundurmanızı tavsiye etmekte fayda olduğunu düşünüyorum. Böylece bilgilerin güvenliği garanti altına alınmış olur.

Ubuntu Sunucusunu kurun ve yapılandırın

Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave