Berbagi teknologi

lvs cluster, mode NAT dan mode DR, tetap hidup

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Daftar isi

konsep cluster lvs

Jenis cluster: tiga jenis

Indeks Keandalan Sistem

Terminologi dalam lvs cluster

Cara kerja lvs

Modus NAT

alat lvs

algoritma

percobaan

aliran data

melangkah

1. Konfigurasi penjadwal (test1 192.168.233.10)

2. Konfigurasi RS (nginx1 dan nginx2)

3. Terjemahan alamat (test1 192.168.233.10)

Hasil percobaan

Modus DR

konsep

Diagram aliran data

pertanyaan:

1. Konflik alamat VIP

2. Ketika pesan dibalas, alamat VIP masih ada. Bagaimana klien dapat menerima tanggapan?

Implementasi mode DR

melangkah

1. Konfigurasi penjadwal (test1 192.168.233.10)

2. Konfigurasi RS (nginx1 dan nginx2) [harus diubah dua kali]

Hasil percobaan

Meringkaskan

Eksperimen ringkasan

LVS mengimplementasikan penerusan empat lapis + nginx mengimplementasikan penerusan tujuh lapis (dinamis). Mengakses alamat VIP LVS dapat mencapai pemisahan dinamis dan statis.

Diagram aliran data

Langkah-langkah eksperimental

Hasil percobaan

Tiga mode kerja lvs

Arsitektur HA yang sangat tersedia

konsep

percobaan tetap hidup

Langkah-langkah eksperimental

tuan rumah

Sunting

Mempersiapkan

Hasil eksperimen


konsep cluster lvs

Nama lengkapnya adalah linux virtual server, yaitu software yang mengimplementasikan loadbalancing pada level kernel Linux.

Fungsi utama: Membentuk beberapa server back-end menjadi cluster server dengan ketersediaan tinggi dan berkinerja tinggi, dan mendistribusikan permintaan klien ke server back-end melalui algoritma penyeimbangan beban untuk mencapai ketersediaan tinggi dan penyeimbangan beban.

Saldo loab server SLB Alibaba diimplementasikan menggunakan lvs+keepalive.

Berkelompok dan terdistribusi

Cara memperluas sistem:

Penskalaan Vertikal: Meningkatkan skala untuk membangun komputer yang lebih mumpuni.Kemacetan: keterbatasan peralatan komputer itu sendiri; kemacetan kinerja perangkat keras itu sendiri

Ekspansi horizontal: Perluas ke luar dan tambahkan peralatan.Jalankan beberapa layanan secara paralel dan andalkan jaringan untuk menyelesaikan masalah komunikasi internal, cluster cluster

Cluster: Sebuah sistem tunggal yang dibentuk dengan menggabungkan beberapa komputer untuk memecahkan suatu masalah tertentu

Jenis cluster: tiga jenis

LB: cluster load balance load balance, terdiri dari beberapa host, masing-masing host hanya menanggung sebagian dari permintaan akses

HA : ketersediaan tinggi: Saat merancang sistem, langkah-langkah tertentu diambil untuk memastikan bahwa jika suatu komponen atau bagian dari sistem gagal, keseluruhan sistem masih dapat berjalan normal.Untuk menjaga ketersediaan, keandalan, dan toleransi kesalahan sistem

HPC:kluster komputasi berkinerja tinggi dengan kinerja tinggi, dengan persyaratan waktu respons dan daya pemrosesan yang lebih tinggi

Indeks Keandalan Sistem

PACARKU:Rata-Rata Waktu Antar Kegagalan Rata-rata waktu antar kegagalan

MTTR:Perbaikan Pemulihan Waktu Berarti berarti waktu pemulihan

A=MTBF/(MTBF+MTTR)

Indeks A harus antara 0 dan 1. Indeks A adalah ukuran ketersediaan sistem. 0 berarti sistem lebih sedikit tersedia, 1 berarti sistem lebih banyak tersedia.

Indikator A harus mendekati angka 1 (98%-99% memenuhi syarat; 90%-95% tidak memenuhi syarat)

Semuanya dalam satuan jam (8760 jam dalam 1 tahun, 365 hari)

Waktu henti dan waktu yang direncanakan tidak termasuk

Waktu tidak terencana yaitu waktu kegagalan adalah total waktu dari terjadinya kegagalan hingga penyelesaian kegagalan. Waktu tidak terencana merupakan salah satu indikator yang harus kita perhatikan.

Skenario yang berlaku LVS:

Cluster kecil tidak perlu pakai lvs, pakai nginx, cluster besar pakai lvs

Terminologi dalam lvs cluster

VS: Nama logis dari layanan lvs server vittual, yang merupakan alamat IP dan port yang kami gunakan saat mengakses cluster lvs secara eksternal.

DS: Server utama di cluster lvs server direktur, yaitu penjadwal (yaitu, server proxy nginx), adalah inti dari cluster. Penjadwal digunakan untuk menerima permintaan klien dan meneruskannya ke back-end server.

RS: Server sebenarnya di cluster lvs server sebenarnya, server back-end, digunakan untuk menerima permintaan yang diteruskan oleh DS dan merespons hasilnya.

CIP: ip klien Alamat klien, yaitu alamat klien yang memulai permintaan

VIP: alamat ip ip virtual yang digunakan oleh cluster lvs, alamat ip virtual yang menyediakan akses cluster eksternal

DIP: ip direktur adalah alamat penjadwal di cluster, digunakan untuk berkomunikasi dengan RS

RIP: real ip Alamat IP server back-end di cluster

Cara kerja lvs

Mode NAT: Mode ini ditanggapi klien oleh penjadwal (terjemahan alamat)

Mode DR (mode perutean langsung): server sebenarnya merespons langsung ke klien

Mode TUN: Mode terowongan

Mode yang umum digunakan: mode NAT dan mode DR

Modus NAT

Dalam mode NAT, LVS akan mengubah alamat IP target dan port dalam pesan permintaan dari klien ke alamat IP dan port dalam LVS, dan kemudian meneruskan permintaan tersebut ke server back-end.

Ketika hasil respons dikembalikan ke klien, pesan respons diproses oleh lvs dan IP serta port target diubah ke alamat IP dan port klien.

Prinsip: Pertama, ketika penyeimbang beban menerima paket permintaan pelanggan, penyeimbang beban menentukan server nyata backend (RS) mana yang akan dikirimi permintaan berdasarkan algoritma penjadwalan.
Penyeimbang beban kemudian mengubah alamat IP target dan port paket permintaan yang dikirim oleh klien ke alamat IP (RIP) server nyata back-end.
Setelah server sebenarnya merespons permintaan tersebut, ia memeriksa rute default dan mengirimkan paket data respons ke penyeimbang beban
Ubah alamat sumber paket menjadi alamat virtual (VIP) dan kirimkan kembali ke klien.

Keuntungan: Server di cluster dapat menggunakan sistem operasi apa pun yang mendukung TCP/IP, selama penyeimbang beban memiliki alamat IP yang sah.

Kekurangan: Skalabilitas terbatas. Ketika node server tumbuh terlalu banyak, karena semua permintaan dan respons harus melalui penyeimbang beban,
Oleh karena itu penyeimbang beban akan menjadi penghambat keseluruhan sistem.

Ditandai dengan terjemahan alamat

Terjemahan alamat: jaringan internal - jaringan eksternal, alamat IP sumber diubah menjadi SNAT

Jaringan eksternal-jaringan internal mengubah DNAT alamat IP tujuan

alat lvs

ipvsadmAlat untuk mengonfigurasi dan mengelola cluster lvs

-A menambahkan vip server virtual

-D hapus alamat server virtual

-s menentukan algoritma penjadwalan penyeimbangan beban

-a menambahkan server nyata

-d hapus server sebenarnya

-t menentukan alamat dan port VIP

-r menentukan alamat dan port rip

-m Gunakan mode NAT

-g Gunakan mode DR

-i Gunakan mode terowongan

-w mengatur berat badan

-p 60 menahan koneksi selama 60 detik Atur waktu tunggu koneksi

-l tampilan daftar

-n tampilan digital

algoritma

Jajak pendapat rr

Jajak pendapat tertimbang wrr

Koneksi minimum lc

tautan terkecil tertimbang wlc

percobaan

aliran data

nginx1 RS1 192.168.233.20

nginx2 RS2 192.168.233.30

penjadwal test1 ens33 192.168.233.10 ens36 12.0.0.1

klien test2 12.0.0.10

melangkah
1. Konfigurasi penjadwal (test1 192.168.233.10)

yum -y pasang ipvsadm* -y

Konfigurasikan ens33

systemctl memulai ulang jaringan

Konfigurasikan ens36

cd /etc/sysconfig/skrip-jaringan/

cp jika-en33 jika-en36

vim ifcfg-ens36

systemctl memulai ulang jaringan

2. Konfigurasi RS (nginx1 dan nginx2)

Konfigurasikan nginx1 192.168.233.20 Ubah gateway

systemctl memulai ulang jaringan

Konfigurasikan nginx2 192.168.233.30 Ubah gateway

systemctl memulai ulang jaringan

vim /usr/lokal/nginx/html/indeks.html

Ubah konten halaman yang dikunjungi

Periksa apakah akses terhubung

3. Terjemahan alamat (test1 192.168.233.10)

iptables -t nat -vnL Periksa apakah tabel nat memiliki kebijakan

1.

iptables -t nat -A POSTROUTING -s 192.168.233.0/24 -o ens36 -j SNAT --ke 12.0.0.1

Alamat perangkat dari 192.168.233.0/24 diubah menjadi 12.0.0.1

2.

ipvsadm -C menghapus kebijakan asli

ipvsadm -A -t 12.0.0.1:80 -s rr Tentukan alamat dan port VIP

Pertama tambahkan VIP, IP dan port server virtual, lalu tambahkan server sebenarnya

3.

ipvsadm -a -t 12.0.0.1:80 -r 192.168.233.20:80 -m

-a tambahkan server nyata

-t menentukan alamat vip

-r menentukan alamat dan port server sebenarnya

-m menentukan mode sebagai mode nat

ipvsadm -ln lihat

4.

ipvsadm-simpan simpan

ipvsadm -D -t 192.168.233.10:80 kebijakan penghapusan

ipvsadm -d -r 192.168.233.20: -t 12.0.0.1:80 menghapus server simpul

5. Aktifkan fungsi perutean dan penerusan

vim /etc/sysctl.conf

net.ipv4.ip_maju=1

4. Klien (tes2 12.0.0.10)

Ubah alamat IP dan gateway test2

Hasil percobaan

pemungutan suara tertimbang

Modus DR

konsep

ini adalah mode perutean langsung

Mode NAT: Penjadwal adalah yang paling penting di seluruh cluster LVS. Dalam mode NAT, penjadwal bertanggung jawab untuk menerima permintaan, meneruskan lalu lintas sesuai dengan algoritma penyeimbangan beban, dan mengirimkan respons ke klien.

Mode DR: Penjadwal masih bertanggung jawab untuk menerima permintaan, dan juga meneruskan lalu lintas ke RS sesuai dengan algoritma penyeimbangan beban, dan responsnya langsung dikirim ke klien melalui RS.

Perutean Langsung: Ini adalah mode penerusan Lapisan 2. Lapisan 2 meneruskan bingkai data dan meneruskannya berdasarkan alamat MAC sumber dan alamat MAC tujuan tanpa mengubah IP sumber dan IP tujuan paket data. Meneruskan berdasarkan alamat MAC paket data.

Dalam mode DR, LVS juga mempertahankan alamat IP virtual, dan semua permintaan dikirim ke VIP ini karena penerusan lapisan 2 digunakan, ketika permintaan klien mencapai penjadwal, RS dipilih sesuai dengan algoritma penyeimbangan beban dan server VIP. diubah. Mac tujuan menjadi alamat mac RS. Setelah RS memproses permintaan, ia dapat langsung mengirimkan respons ke klien berdasarkan alamat mac sumber klien dalam pesan, tanpa melalui penjadwal.

Prinsip: Pertama, ketika penyeimbang beban menerima paket permintaan pelanggan, penyeimbang beban menentukan server nyata backend (RS) mana yang akan dikirimi permintaan berdasarkan algoritma penjadwalan.
Penyeimbang beban kemudian mengubah alamat MAC target dari paket permintaan yang dikirim oleh klien ke alamat MAC server nyata backend (R-MAC).
Setelah server sebenarnya merespons permintaan tersebut, ia memeriksa rute default dan mengirimkan paket respons langsung ke klien tanpa melalui penyeimbang beban.

Keuntungan: Penyeimbang beban hanya bertanggung jawab untuk mendistribusikan paket permintaan ke server node back-end, sementara RS mengirimkan paket respons langsung ke pengguna.
Oleh karena itu, aliran data dalam jumlah besar melalui penyeimbang beban berkurang. Penyeimbang beban tidak lagi menjadi penghambat sistem dan dapat menangani permintaan dalam jumlah besar.

Kekurangan: Penyeimbang beban dan server RS ​​yang sebenarnya harus memiliki kartu jaringan yang terhubung ke segmen jaringan fisik yang sama dan harus berada di lingkungan LAN yang sama.

Diagram aliran data

pertanyaan:
1. Konflik alamat VIP

Alasan: Penjadwal dikonfigurasi dengan VIP, dan RS juga dikonfigurasi dengan alamat VIP. Konflik alamat VIP, karena scheduler dan RS sama-sama berada pada segmen jaringan yang sama, akan menyebabkan gangguan komunikasi ARP. Karena disiarkan ke seluruh LAN, semua perangkat menerimanya.

Cara memblokir respons loopback lo sehingga hanya alamat IP fisik mesin ini yang merespons.

Solusi: Ubah parameter kernel:arp_abaikan=1

Hanya alamat IP fisik sistem yang akan merespons permintaan ARP, dan antarmuka loopback lo tidak akan merespons permintaan ARP.

2. Ketika pesan dibalas, alamat VIP masih ada. Bagaimana klien dapat menerima tanggapan?

Larutan:arp_umumkan=2

Sistem tidak menggunakan alamat sumber paket IP untuk merespons permintaan ARP, tetapi langsung mengirimkan alamat IP antarmuka fisik.

Implementasi mode DR

nginx1 RS (ip asli) 192.168.233.20

nginx2RS192.168.233.30

alamat 192.168.233.100

Penjadwal 192.168.233.10

Klien 192.168.233.40

melangkah
1. Konfigurasi penjadwal (test1 192.168.233.10)

yum -y pasang ipvsadm* -y

Tambahkan kartu jaringan virtual ens33:0

Ubah parameter respons penjadwal

vim /etc/sysctl.conf

net.ipv4.ip_maju=0
net.ipv4.conf.all.kirim_pengalihan=0
net.ipv4.conf.default.kirim_pengalihan=0
net.ipv4.conf.ens33.kirim_pengalihan=0
 

sysctl-p - bahasa Indonesia

Tambahkan kebijakan

cd /pilihan

ipvsadm -A -t 192.168.233.100:80 -s rr

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.20:80 -g

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.30:80 -g

ipvsadm-simpan >/etc/sysconfig/ipvsadm

sistemctl memulai ulang ipvsadm

ipvsadm -ln

2. Konfigurasi RS (nginx1 dan nginx2) [harus diubah dua kali]

Ubah konten tampilan halaman statis

vim /usr/lokal/nginx/html/indeks.html

sistemctl memulai ulang nginx

Tambahkan alamat loopback

cd /etc/sysconfig/skrip-jaringan/

jika cp-lo jika cp-lo:0

vim ifcfg-lo:0

Tambahkan antarmuka lo:0 sebagai vip

rute tambah -host 192.168.233.100 dev lo:0

Tetapkan alamat IP ke 192.168.233.100 dan tambahkan ke antarmuka loopback sebagai VIP lvs. Ini diteruskan ke RS melalui mode perutean, yang memungkinkan VIP untuk mengidentifikasi server sebenarnya.

Ubah respons kernel dari server RS ​​sebenarnya

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.semua.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

Hasil percobaan

Ubah algoritma polling VIP

Ubah bobot dalam jajak pendapat kebijakan

Meringkaskan

Perbedaan lvs dan nginx untuk loadbalancing

LVS adalah penerusan empat lapis, menggunakan mode kernel ip + port, dan hanya dapat digunakan sebagai proxy empat lapis.

nginx proksi empat lapis, atau proksi tujuh lapis

Eksperimen ringkasan

lvs (mode DR)+nginx+kucing jantan

LVS mengimplementasikan penerusan empat lapis + nginx mengimplementasikan penerusan tujuh lapis (dinamis). Mengakses alamat VIP LVS dapat mencapai pemisahan dinamis dan statis.

Diagram aliran data

Langkah-langkah eksperimental

Berdasarkan percobaan di atas dalam mode DR, pemisahan dinamis dan statis tercapai.

1. Bagian Tomcat

1. Buat halaman dinamis masing-masing di Tomcat1 dan Tomcat2

<%@ halaman bahasa="java" impor="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>Tes JSP1 halaman</title>
</head>
<body>
&lt;% out.println("Halaman dinamis 1, http://www.test1.com");%&gt;
</body>
</html>

2. Tambahkan situs masing-masing ke Tomcat1 dan Tomcat2

cd konfigurasi

vim server.xml

Hapus situs aslinya terlebih dahulu

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />

Periksa apakah port telah dimulai

Kunjungi 192.168.233.40:8080/index.jsp

2. bagian nginx

Konfigurasikan nginx2 dan nginx3

cd /usr/lokal/nginx/konf/

cp nginx.conf nginx.conf.bak.2024.07.08

vim nginx.conf

tomcat hulu {
server 192.168.233.40:8080 berat=1;
server 192.168.233.50:8080 berat=1;
}

lokasi ~ .*.jsp$ {
proxy_pass http://tomcat;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $alamat_jarak_jauh;
proxy_set_header X-Diteruskan-Untuk $proxy_add_x_forwarded_for;
        }

Kemudian systemctl restart nginx

Konfigurasikan proksi nginx1

Jadilah agen empat tingkat

cd /usr/lokal/nginx/konflik

vim nginx.conf

Kemudian systemctl restart nginx

Hasil percobaan

Kunjungi halaman statis 192.168.100:81

Kunjungi halaman dinamis 192.168.233.100:82/index.jsp

Tiga mode kerja lvs

NAT DR TUN

Keuntungan: Terjemahan alamat, konfigurasi sederhana, kinerja WAN terbaik, dapat mencapai penerusan paket data jarak jauh

Kekurangan Kemacetan kinerja Tidak mendukung saluran khusus segmen lintas jaringan, memerlukan pembukaan VPN (membutuhkan biaya)

Persyaratan RS: Tidak ada batasan. Respons ARP pada antarmuka non-fisik harus dinonaktifkan.

Jumlah RS 10-20 unit 100 unit 100 unit

Pertanyaan wawancara:

1. Jelaskan secara singkat tiga mode dan perbedaan lvs

tabel di atas

2. Cara mengatasi otak terbelah di keepalive

Arsitektur HA yang sangat tersedia

konsep

Ini adalah arsitektur ketersediaan tinggi di cluster vs, hanya untuk ketersediaan penjadwal yang tinggi

Menerapkan penjadwal utama dan cadangan berdasarkan vrp

Penjadwal utama dan penjadwal cadangan (beberapa unit)

Ketika penjadwal utama bekerja secara normal, pencadangan sepenuhnya dalam keadaan redundan (siaga) dan tidak berpartisipasi dalam pengoperasian cluster. Hanya ketika penjadwal utama gagal, server cadangan akan mengambil alih pekerjaan penjadwal utama. Jika penjadwal utama melanjutkan fungsinya, penjadwal utama akan terus berfungsi sebagai pintu masuk ke cluster, dan siaga akan terus berada dalam keadaan redundan, yang tidak selalu bergantung pada prioritas.

Keepalive didasarkan pada protokol vrp untuk mengimplementasikan solusi ketersediaan tinggi

1.Alamat multicast

224.0.0.18 berkomunikasi berdasarkan alamat multicast, dan mengirimkan pesan antara perangkat primer dan sekunder.Tentukan apakah lawan masih hidup

2. Menentukan jabatan primer dan sekunder berdasarkan prioritas

3. Failover, jika server utama gagal maka server cadangan akan tetap bekerja.Tuhan telah pulih dan bersiaga

4. Peralihan antara primer dan sekunder adalah peralihan alamat VIP

Keepalive muncul khusus untuk LVS, namun tidak eksklusif untuk LVS.

modul inti: modul inti keepalive, bertanggung jawab atas permulaan dan pemeliharaan proses utama dan pemuatan file konfigurasi global

modul vrrp: modul yang mengimplementasikan protokol vrrp, yang merupakan modul fungsi utama

modul pemeriksaan: bertanggung jawab untuk pemeriksaan kesehatan, dan juga dapat memeriksa status server sebenarnya di latar belakang

percobaan tetap hidup

test1 192.168.233.10 berikutnya

test2 192.168.233.50 detik

alamat 192.168.233.100

nginx1 192.168.233.20

nginx2 192.168.233.30

Klien 192.168.233.40

Langkah-langkah eksperimental

1. Operasi primer dan sekunder harus dilakukan dengan cara yang sama.

yum -y instal ipvsadm tetap hidup

vim /etc/sysctl.conf

net.ipv4.ip_maju=0
net.ipv4.conf.all.kirim_pengalihan=0
net.ipv4.conf.default.kirim_pengalihan=0
net.ipv4.conf.ens33.kirim_pengalihan=0

sysctl-p - bahasa Indonesia

ipvsadm -C

ipvsadm -A -t 192.168.233.100:80 -s rr

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.20:80 -g

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.30:80 -g

ipvsadm-simpan &gt;/etc/sysconfig/ipvsadm

sistemctl memulai ulang ipvsadm

ipvsadm -ln

tuan rumah

cd /etc/keepalive

vim tetap hidup.conf

Mempersiapkan

Hasil percobaan