Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk mengkonfigurasi sistem fail kluster yang sangat tersedia di Linux

Bagaimana untuk mengkonfigurasi sistem fail kluster yang sangat tersedia di Linux

WBOY
WBOYasal
2023-07-07 13:18:071727semak imbas

Cara mengkonfigurasi sistem fail kluster yang sangat tersedia di Linux

Pengenalan:
Dalam bidang komputer, ketersediaan tinggi (ketersediaan tinggi) ialah teknologi yang bertujuan untuk meningkatkan kebolehpercayaan dan ketersediaan sistem. Dalam persekitaran kluster, sistem fail yang sangat tersedia adalah salah satu komponen penting untuk memastikan operasi berterusan sistem. Artikel ini akan memperkenalkan cara mengkonfigurasi sistem fail kluster yang tersedia pada Linux dan memberikan contoh kod yang sepadan.

  1. Pasang Pakej
    Pertama, pastikan anda memasang pakej yang diperlukan pada sistem anda. Dalam kebanyakan pengedaran Linux, pakej ini boleh dipasang menggunakan alat pengurusan pakej. Berikut ialah pakej perisian biasa:
  • Perencah: alat pengurusan kelompok untuk mengurus status dan sumber sistem fail.
  • Corosync: Alat komunikasi untuk membina dan mengekalkan persekitaran kluster.
  • DRBD: Peranti blok replika yang diedarkan, digunakan untuk melaksanakan pencerminan cakera.
  • GFS2 atau OCFS2: digunakan untuk menyediakan sistem fail kluster yang sangat tersedia.

Di Ubuntu, anda boleh menggunakan arahan berikut untuk memasang pakej:

sudo apt-get install pacemaker corosync drbd8-utils gfs2-utils
  1. Konfigurasikan persekitaran kluster
    Pertama, anda perlu mengkonfigurasi persekitaran kluster, termasuk komunikasi antara nod dan pengurusan sumber. Berikut ialah contoh konfigurasi mudah dengan dua nod (nod1 dan node2):
  • Ubah suai fail /etc/hosts dan tambah alamat IP dan nama hos nod supaya nod boleh mengakses satu sama lain.
sudo nano /etc/hosts

Tambah yang berikut:

192.168.1.100    node1
192.168.1.101    node2
  • Konfigurasikan komunikasi Corosync.

Buat fail konfigurasi Corosync.

sudo nano /etc/corosync/corosync.conf

Tambah yang berikut:

totem {
    version: 2
    secauth: off
    cluster_name: mycluster
    transport: udpu
}

nodelist {
    node {
        ring0_addr: node1
        nodeid: 1
    }
    node {
        ring0_addr: node2
        nodeid: 2
    }
}

quorum {
    provider: corosync_votequorum
}

logging {
    to_syslog: yes
    to_logfile: yes
    logfile: /var/log/corosync.log
    debug: off
    timestamp: on
}
  • Dayakan perkhidmatan Corosync dan Perentak Jantung.
sudo systemctl enable corosync
sudo systemctl enable pacemaker

Mulakan perkhidmatan.

sudo systemctl start corosync
sudo systemctl start pacemaker
  1. Mengkonfigurasi DRBD
    DRBD ialah peranti blok replika teragih yang digunakan untuk melaksanakan pencerminan cakera antara berbilang nod. Berikut ialah contoh konfigurasi DRBD dengan dua nod (nod1 dan node2) dan menggunakan /dev/sdb sebagai peranti blok kongsi:
  • Mengkonfigurasi DRBD.

Buat fail konfigurasi DRBD.

sudo nano /etc/drbd.d/myresource.res

Tambahkan yang berikut:

resource myresource {
    protocol C;

    on node1 {
        device /dev/drbd0;
        disk   /dev/sdb;
        address 192.168.1.100:7789;
        meta-disk internal;
    }

    on node2 {
        device /dev/drbd0;
        disk   /dev/sdb;
        address 192.168.1.101:7789;
        meta-disk internal;
    }

    net {
        allow-two-primaries;
    }

    startup {
        wfc-timeout     15;
        degr-wfc-timeout 60;
    }

    syncer {
        rate    100M;
        al-extents 257;
    }

    on-node-upgraded {
        # promote node1 to primary after a successful upgrade
        if [ "$(cat /proc/sys/kernel/osrelease)" != "$TW_AFTER_MAJOR.$TW_AFTER_MINOR.$TW_AFTER_UP" ] && 
           [ "$(cat /proc/mounts | grep $DRBD_DEVICE)" = "" ] ; then
            /usr/bin/logger "DRBD on-node-upgraded handler: Promoting to primary after upgrade.";
            /usr/sbin/drbdsetup $DRBD_DEVICE primary;
        fi;
    }
}
  • Mulakan DRBD.
sudo drbdadm create-md myresource

Mulakan DRBD.

sudo systemctl start drbd
  1. Konfigurasikan sistem fail kluster
    Terdapat berbilang sistem fail kluster untuk dipilih, seperti GFS2 dan OCFS2. Berikut ialah contoh konfigurasi menggunakan GFS2 sebagai contoh.
  • Buat sistem fail.
sudo mkfs.gfs2 -p lock_gulmd -t mycluster:myresource /dev/drbd0
  • Lekapkan sistem fail.
sudo mkdir /mnt/mycluster
sudo mount -t gfs2 /dev/drbd0 /mnt/mycluster
  • Tambah sumber sistem fail.
sudo pcs resource create myresource Filesystem device="/dev/drbd0" directory="/mnt/mycluster" fstype="gfs2"  op start  timeout="60s"  op stop  timeout="60s"  op monitor interval="10s"  op monitor timeout="20s"  op monitor start-delay="5s"  op monitor stop-delay="0s"
  • Dayakan dan mulakan sumber.
sudo pcs constraint order myresource-clone then start myresource
sudo pcs constraint colocation add myresource with myresource-clone
  1. Uji ketersediaan tinggi
    Selepas melengkapkan konfigurasi di atas, anda boleh menguji ketersediaan tinggi. Berikut ialah langkah-langkah untuk menguji:
  • Hentikan nod induk.
sudo pcs cluster stop node1
  • Semak sama ada sistem fail berjalan dengan betul pada nod siap sedia.
sudo mount | grep "/mnt/mycluster"

Output hendaklah alamat dan titik lekapan nod siap sedia.

  • Pulihkan nod induk.
sudo pcs cluster start node1
  • Semak sama ada sistem fail dipulihkan ke nod induk.
sudo mount | grep "/mnt/mycluster"

Output hendaklah alamat dan titik lekapan nod induk.

Kesimpulan:
Mengkonfigurasi sistem fail kluster yang tersedia boleh meningkatkan kebolehpercayaan dan ketersediaan sistem. Artikel ini menerangkan cara mengkonfigurasi sistem fail kluster yang tersedia pada Linux dan menyediakan contoh kod yang sepadan. Pembaca boleh mengkonfigurasi dan melaraskan dengan sewajarnya mengikut keperluan mereka sendiri untuk mencapai ketersediaan yang lebih tinggi.

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi sistem fail kluster yang sangat tersedia di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn