Bagian sebelumnya
Tambahkan dan hapus server GlusterFS
Artikel ini menunjukkan cara-cara berikut untuk memulihkan ketika satu server gagal:
-
Tambahkan server baru, dengan alamat IP baru, untuk menggantikannya (perbaikan yang tidak terlalu menguras tenaga).
-
Tambahkan server baru tetapi pertahankan alamat IP dari server yang gagal (perbaikan yang lebih padat karya).
Setelah menyelesaikan artikel sebelumnya, Anda harus memiliki array GlusterFS dengan setidaknya dua node dan mengetahui cara menambah dan menghapus node.
Prasyarat
Untuk tujuan artikel ini, Anda harus menjalankan volume Gluster empat simpul yang sepenuhnya direplikasi.
Isi array GlusterFS Anda dengan data palsu untuk pengujian.
Tambahkan server pengganti
Dalam skenario ini, web03 gagal, tetapi Anda menambahkan simpul baru dengan alamat IP 192.168.0.5 untuk menggantikannya. Cara ini lebih mudah daripada menambahkan server baru dengan alamat IP yang sama dengan server yang gagal.
Artikel ini akan menunjukkan dua bentuk pemulihan bencana:
- Satu simpul mati, dan Anda menambahkan simpul baru untuk menggantikannya.
- Satu node rusak, dibangun kembali, dan mempertahankan IP - ternyata lebih banyak pekerjaan yang harus diperbaiki
Tambahkan simpul pengganti
Dalam skenario ini, web03 akan turun lagi, tetapi Anda akan menambahkan simpul baru di 192.168.0.5 untuk menggantikannya. Cara ini jauh lebih mudah.
-
Menggunakan salah satu server yang berjalan, tambahkan server baru ke dalam cluster:
root@matt:~# gluster peer probe 192.168.0.5 peer probe: success
-
Tukarkan batu bata yang gagal dengan yang baru:
root@matt:~# gluster volume replace-brick www 192.168.0.3:/srv/.bricks/www 192.168.0.5:/srv/.bricks/www commit force volume replace-brick: success: replace-brick commit successful
-
Sembuhkan sistem:
root@matt:~# gluster volume heal www full Launching Heal operation on volume www has been successful Use heal info commands to check status
-
Dapatkan informasi tentang kemajuan
heal
operasi:root@matt:~# gluster volume heal www info Gathering Heal info on volume www has been successful ... Brick 192.168.0.4:/srv/.bricks/www Number of entries: 23 /wordpress/wp-admin/upload.php
-
Jika Anda menjalankan sistem terdistribusi, jalankan perintah berikut:
root@matt:~# gluster volume rebalance www fix-layout start volume rebalance: www: success: Starting rebalance on volume www has been successful. ID: 0a9719c1-cf04-4161-b3b0-cc6fd8dd9108 root@matt:~# gluster volume rebalance www status Node Rebalanced-files size scanned failures skipped status run time in secs --------- ----------- ----------- ----------- ----------- ----------- ------------ -------------- localhost 0 0Bytes 0 0 0 completed 1.00 localhost 0 0Bytes 0 0 0 completed 1.00 192.168.0.2 0 0Bytes 0 0 0 completed 1.00 192.168.0.4 0 0Bytes 0 0 0 completed 1.00 192.168.0.4 0 0Bytes 0 0 0 completed 1.00 192.168.0.5 0 0Bytes 0 0 0 completed 1.00 volume rebalance: www: success:
Simpan alamat IP
Dalam skenario ini, server web03, dengan alamat IP 192.168.0.3, mogok dan sama sekali tidak dapat dipulihkan.
Untuk memulihkan, Anda membangun server baru, dengan alamat IP yang sama , sajikan ke GlusterFS sebagai server yang gagal, dan biarkan sembuh sendiri. Anda kemudian menyeimbangkan kembali volume ke GlusterFS.
Lihat artikel sebelumnya untuk informasi tentang membangun dan mengonfigurasi server pengganti.
Menyamarkan server web03 baru sebagai server yang gagal
-
Bangun server baru, instal GlusterFS di dalamnya, dan siapkan disk untuk batanya.
-
Berikan server UUID rekan dari server yang gagal. Untuk mendapatkan UUID, jalankan perintah berikut di salah satu server yang sedang berjalan (seperti web01):
root@web01:~# grep 192.168.0.3 /var/lib/glusterd/peers/*/var/lib/glusterd/peers/ba502dc2-447f-466a-a732-df989e71b551:hostname1=192.168.0.3
-
Salin nama file (yang merupakan UUID Web03 asli). Pada contoh sebelumnya adalah:
ba502dc2-447f-466a-a732-df989e71b551
. -
Tetapkan UUID server yang gagal ke server baru.
-
Hentikan daemon Gluster:
root@web03:~# service glusterfs-server stop glusterfs-server stop/waiting
-
Ganti UUID simpul yang dihasilkan dengan yang disalin di
glusterd
file konfigurasi:root@web03:~# UUID=ba502dc2-447f-466a-a732-df989e71b551 root@web03:~# sed -i "s/\(UUID\)=\(.*\)/\1=$UUID/g" /var/lib/glusterd/glusterd.info root@web03:~# cat /var/lib/glusterd/glusterd.info UUID=ba502dc2-447f-466a-a732-df989e71b551 operating-version=2
Catatan:
ba502dc2-447f-466a-a732-df989e71b551
UUID adalah contoh UUID; Anda harus menggantinya dengan UUID dari server Anda yang gagal (seperti yang diingat oleh web01). -
-
Mulai server lagi:
root@web03:~# service glusterfs-server start glusterfs-server start/running, process 10732
Konfigurasi ulang server rekan
-
Di server baru, periksa apakah server lain terlihat:
root@web03:~# gluster peer status peer status: No peers present
-
Jika server rekan tidak terlihat, Anda harus menambahkannya secara eksplisit:
root@web03:~# gluster peer probe 192.168.0.1 peer probe: success root@web03:~# gluster peer probe 192.168.0.2 peer probe: success root@web03:~# gluster peer probe 192.168.0.4 peer probe: success
-
Jalankan
gluster peer status
perintah lagi di web03. Responsnya harus:State: Accepted peer request (Connected)
-
Mulai ulang daemon sekali lagi, dan server rekan akan terlihat:
root@web03:~# service glusterfs-server restart glusterfs-server stop/waiting glusterfs-server start/running, process 9123 root@web03:~# gluster peer status Number of Peers: 3 Hostname: 192.168.0.2 Uuid: 177cd473-9421-4651-8d6d-18be3a7e1990 State: Peer in Cluster (Connected) Hostname: 192.168.0.1 Uuid: 8555eac6-de14-44f6-babe-f955ebc16646 State: Peer in Cluster (Connected) Hostname: 192.168.0.4 Uuid: 1681b266-dc31-42e1-ab82-4e220906eda1 State: Peer in Cluster (Connected)
Sinkronkan volume
-
Periksa status volume:
root@web03:~# gluster volume status No volumes present
-
Dapatkan volume dari server rekan:
root@web03:~# gluster volume sync 192.168.0.2 all Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y volume sync: success
-
Atur sistem file untuk batu bata ke dalam urutan. Pada contoh berikut, batu bata disimpan di /srv/.bricks/www :
root@web03:~# mkdir /srv/.bricks/www
-
Buka salah satu server yang sedang berjalan, instal
attr
dan dapatkan ID volume yang benar.root@web02:~# apt-get install attr -y ... root@web02:~# getfattr -n trusted.glusterfs.volume-id /srv/.bricks/www getfattr: Removing leading '/' from absolute path names # file: srv/.bricks/www trusted.glusterfs.volume-id=0s42V5HW+LSuyzqotW1jgAhA==
-
Salin string ID volume ke clipboard Anda. Dalam contoh, ini adalah
0s42V5HW+LSuyzqotW1jgAhA==
. -
Di server pengganti, terapkan atribut yang diperluas itu:
root@web03:~# apt-get install attr -y ... root@web03:~# setfattr -n trusted.glusterfs.volume-id -v '0s42V5HW+LSuyzqotW1jgAhA==' /srv/.bricks/www
-
Mulai ulang server, lalu pulihkan sistem:
root@matt:~# service glusterfs-server restart glusterfs-server stop/waiting glusterfs-server start/running, process 13318 root@matt:~# gluster volume heal www full Launching Heal operation on volume www has been successful Use heal info commands to check status
-
Dapatkan informasi tentang kemajuan
heal
operasi. Server baru akan berjalan seperti yang diharapkan.root@matt:~# gluster volume heal www info Gathering Heal info on volume www has been successful Brick 192.168.0.1:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.2:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.3:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.4:/srv/.bricks/www Number of entries: 0
Kesimpulan
Anda sekarang telah mempelajari cara memulihkan dari server yang gagal dalam larik GlusterFS.