Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Prasyarat dan pengaturan cluster
Di bagian ini, Anda mengatur infrastruktur untuk tutorial ketersediaan tinggi. Anda membuat grup keamanan, membuat key pair, meluncurkan instans Amazon EC2, menginstal Pacemaker dan DRBD, membuat klaster, dan mengonfigurasi replikasi tingkat blok antar instance.
Membuat dan mengkonfigurasi grup keamanan
Buat grup keamanan yang memungkinkan semua lalu lintas antar instance cluster. Untuk tutorial ini, Anda membuka semua port untuk menyederhanakan pengaturan. Langkah ini membutuhkan VPC. Jika Anda tidak memilikinya, lihat Membuat VPC.
Konsol
-
Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/
-
Di panel navigasi, pilih Grup Keamanan, lalu pilih Buat grup keamanan.
-
Masukkan nama (misalnya,
pacemaker-cluster-sg) dan deskripsi. -
Pilih VPC Anda.
-
Pilih Buat grup keamanan.
-
Setelah pembuatan, pilih grup keamanan baru dan edit aturan masuknya. Pilih Tambahkan aturan. Setel Type to All traffic dan Source ke ID grup keamanan itu sendiri. Ini memungkinkan semua lalu lintas antar instance dalam grup keamanan ini.
-
Tambahkan aturan masuk kedua untuk akses SSH. Atur Type ke SSH dan Source ke IP Saya.
AWS Command Line Interface
-
Buat grup keamanan.
aws ec2 create-security-group \ --group-name pacemaker-cluster-sg \ --description "Security group for Pacemaker HA cluster" \ --vpc-idyour-vpc-idPerhatikan
GroupIddari output (misalnya,sg-0123456789abcdef0). -
Tambahkan aturan masuk untuk mengizinkan semua lalu lintas dari instans dalam grup keamanan yang sama.
aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol all \ --source-groupsecurity-group-id -
Tambahkan aturan masuk untuk mengizinkan akses SSH dari alamat IP Anda.
aws ec2 authorize-security-group-ingress \ --group-idsecurity-group-id\ --protocol tcp \ --port 22 \ --cidryour-ip/32
Membuat pasangan kunci
Buat key pair yang akan digunakan untuk akses SSH ke semua instance. Gunakan key pair yang sama untuk semua instance dalam tutorial ini.
Konsol
-
Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/
-
Di panel navigasi, pilih Key Pairs, lalu pilih Create key pair.
-
Masukkan nama (misalnya,
pacemaker-key). -
Pilih RSA sebagai jenis key pair dan .pem sebagai format file.
-
Pilih Buat pasangan kunci. File kunci pribadi diunduh secara otomatis.
Awas
Simpan file kunci pribadi (.pem) di lokasi yang aman. Anda tidak dapat mengunduhnya lagi. Anda memerlukan file ini ke SSH ke dalam instance Anda.
AWS Command Line Interface
-
Buat key pair.
aws ec2 create-key-pair \ --key-namekey-name\ --query 'KeyMaterial' \ --output text > pacemaker-key.pem -
Atur izin yang benar pada file kunci pribadi.
chmod 400 pacemaker-key.pem
Luncurkan instans EC2
Luncurkan dua instance Ubuntu Amazon EC2 di grup keamanan yang Anda buat. Jenis instance kecil (misalnya,t3.small) sudah cukup untuk tutorial ini.
Konsol
-
Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/
-
Pilih Luncurkan Instans.
-
Masukkan nama untuk contoh (misalnya,
pacemaker-instance-1). -
Di bawah Application and OS Images, cari Ubuntu dan pilih AMI Server Ubuntu (misalnya, Ubuntu Server 24.04 LTS).
-
Di bawah Jenis instans, pilih t3.small.
-
Di bawah Pasangan kunci, pilih kunci yang Anda buat sebelumnya.
-
Di bawah Pengaturan jaringan, pilih Edit, pilih VPC Anda dan subnet, dan di bawah Firewall (grup keamanan), pilih Pilih grup keamanan yang ada dan pilih.
pacemaker-cluster-sg -
Pilih Luncurkan instans.
-
Ulangi untuk setiap contoh tambahan (misalnya,
pacemaker-instance-2). Pastikan semua instance berada dalam VPC dan grup keamanan yang sama.
AWS Command Line Interface
-
Luncurkan sebuah instans.
aws ec2 run-instances \ --image-idubuntu-ami-id\ --instance-type t3.small \ --key-namekey-name\ --security-group-idssecurity-group-id\ --subnet-idsubnet-id\ --count 1 \ --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=pacemaker-instance-1}]'Ulangi dengan
Value=pacemaker-instance-2untuk contoh kedua.
Anda memerlukan alamat IP pribadi dari setiap instance untuk konfigurasi cluster.
-
Konsol: Di konsol Amazon EC2, pilih instance dan temukan alamat IPv4 pribadi di tab Detail.
-
AWS Command Line Interface:
aws ec2 describe-instances \ --filters "Name=tag:Name,Values=pacemaker-instance-*" \ --query "Reservations[*].Instances[*].[Tags[?Key=='Name'].Value|[0],PrivateIpAddress]" \ --output table
Instal utilitas Pacemaker
SSH ke setiap instance dan instal utilitas Pacemaker.
ssh -i pacemaker-key.pem ubuntu@instance-public-ip
sudo apt update sudo apt install -y pacemaker pcs resource-agents-extra resource-agents-common resource-agents-base
Konfigurasikan komunikasi jaringan
-
Uji komunikasi antar instance. Pada instance tujuan, jalankan perintah berikut untuk mendengarkan ping dari instance sumber.
sudo tcpdump hostsource-instance-private-ipPada instance sumber, jalankan perintah berikut untuk melakukan ping ke instance tujuan.
ping -c 4destination-instance-private-ipAnda akan melihat tanggapan ping di kedua sisi. Jika tidak, verifikasi bahwa grup keamanan Anda mengizinkan semua lalu lintas antar instance.
-
Nonaktifkan manajemen nama host cloud-init. Pada instans Ubuntu Amazon EC2, cloud-init dapat mengembalikan nama host dan perubahan saat reboot.
/etc/hostsJalankan ini pada setiap instance untuk mencegahnya.sudo bash -c 'cat > /etc/cloud/cloud.cfg.d/99-preserve-hostconfig.cfg <<EOF preserve_hostname: true manage_etc_hosts: false EOF' -
Tetapkan nama host pada setiap instance. Pacemaker menggunakan nama host untuk mengidentifikasi instance cluster.
Pada contoh 1:
sudo hostnamectl set-hostname instance1Pada contoh 2:
sudo hostnamectl set-hostname instance2 -
Konfigurasikan
/etc/hosts. Pada setiap instance, tambahkan IP pribadi dan pasangan nama host ke./etc/hostsIni memungkinkan instance untuk menyelesaikan satu sama lain dengan nama host.sudo tee -a /etc/hosts <<EOFinstance1-private-ipinstance1instance2-private-ipinstance2 EOF
Buat cluster Pacemaker
-
Mulai daemon pcs pada setiap instance.
sudo systemctl enable pcsd.service sudo systemctl start pcsd.service -
Atur kata sandi peretas.
haclusterPengguna adalah akun sistem yang dibuat secara otomatis saat Anda menginstalpcspaket. Alat pacu jantung menggunakan akun ini untuk otentikasi cluster antar instance. Tetapkan kata sandi yang sama pada setiap instance.sudo passwd hacluster -
Otorisasi host PC. Otorisasi instance cluster satu sama lain. Jalankan ini pada setiap contoh.
sudo pcs host auth instance1 instance2Anda akan diminta untuk
haclusternama pengguna dan kata sandi. -
Siapkan cluster. Jalankan perintah ini hanya pada satu contoh.
--forceBendera menghancurkan cluster yang ada di perangkat.sudo pcs cluster setup my-gg-cluster instance1 instance2 --force -
Mulai cluster. Jalankan perintah ini hanya pada satu contoh.
sudo pcs cluster start --all sudo pcs cluster enable --all -
Verifikasi status cluster pada salah satu instance.
sudo pcs status
Mengatur DRBD
DRBD
-
Buat dan lampirkan volume EBS. Buat volume EBS untuk setiap instance. Volume harus berada di Availability Zone yang sama dengan instance.
Konsol
-
Buka konsol Amazon EC2 di. https://console.aws.amazon.com/ec2/
-
Di panel navigasi, pilih Volume, lalu pilih Buat volume.
-
Setel tipe Volume ke gp3, Ukuran ke 8 GiB, dan Availability Zone ke zona yang sama dengan instance Anda.
-
Pilih Buat volume.
-
Pilih volume baru, pilih Tindakan > Lampirkan volume, pilih instance target, atur nama perangkat
/dev/xvdbz, dan pilih Lampirkan volume. -
Ulangi untuk setiap contoh.
AWS Command Line Interface
-
Buat volume di Availability Zone yang sama dengan instans Anda.
aws ec2 create-volume \ --volume-type gp3 \ --size 8 \ --availability-zoneinstance-availability-zonePerhatikan
VolumeIddari output. -
Lampirkan volume ke sebuah instance.
aws ec2 attach-volume \ --volume-idvolume-id\ --instance-idinstance-id\ --device /dev/xvdbzUlangi untuk setiap contoh.
-
-
Verifikasi volume. SSH ke setiap instance dan verifikasi volume dilampirkan dengan mencantumkan perangkat blok.
lsblkPada jenis Nitro-based instance seperti
t3.small, volume muncul sebagai perangkat NVMe (misalnya,/dev/nvme1n1), bukan./dev/xvdbzGunakanlsblkuntuk mengidentifikasi nama perangkat yang sebenarnya, dan gunakan nama itu dalam konfigurasi DRBD. -
Instal utilitas DRBD pada setiap instance.
sudo apt install -y drbd-utils -
Konfigurasikan sumber daya DRBD. Buat direktori konfigurasi sumber daya DRBD dan file pada kedua instance.
sudo mkdir -p /etc/drbd.d sudo vi /etc/drbd.d/greengrass.resTambahkan konfigurasi berikut. Ganti nama host dan alamat IP dengan nilai Anda.
resource greengrass { protocol C; on instance1 { device /dev/drbd0; disk /dev/instance1-device-name; addressinstance1-private-ip:7788; meta-disk internal; } on instance2 { device /dev/drbd0; disk /dev/instance2-device-name; addressinstance2-private-ip:7788; meta-disk internal; } } -
Buat dan mulai sumber daya DRBD. Jalankan pada kedua contoh.
sudo drbdadm create-md greengrass sudo drbdadm up greengrassVerifikasi dengan
lsblkyangdrbd0muncul di bawah perangkat volume EBS Anda (misalnya,xvdbzataunvme1n1). -
Tetapkan contoh utama. Jalankan perintah berikut pada instance1 hanya untuk memaksanya menjadi primer dan menunggu sinkronisasi.
sudo drbdadm -- --overwrite-data-of-peer primary greengrass sudo drbdadm statusTunggu hingga kedua instance ditampilkan
UpToDateuntuk status disk. Setelah disinkronkan, semua instance lainnya menjadi instance siaga. -
Format dan pasang perangkat DRBD.
Pada contoh utama saja, format perangkat DRBD:
sudo mkfs.ext4 /dev/drbd0Pada semua contoh, buat direktori mount:
sudo mkdir -p /greengrass/v2Pada instance utama saja, pasang perangkat DRBD:
sudo mount /dev/drbd0 /greengrass/v2 -
Verifikasi status sinkronisasi DRBD.
sudo drbdadm status mount | grep 'drbd'