Januari 6, 2019 |
Terhubung ke target iSCSI menggunakan perangkat lunak inisiator Open-iSCSILangkah Demi Langkah: Sambungkan ke target iSCSI menggunakan perangkat lunak inisiator Open-iSCSIArtikel ini akan menunjukkan kepada Anda cara mengkonfigurasi Open-iSCSI inisiator (klien) untuk terhubung ke target (server) iSCSI yang ada. Saya tidak akan benar-benar meninjau cara mengatur Target iSCSI di artikel ini. Jika Anda belum memiliki Target iSCSI di lingkungan Anda, Anda bisa melihat OpenFiler. Dalam panduan ini, saya menggunakan sistem CentOS 6.5 sebagai inisiator iSCSI (klien) dan akan terhubung ke target iSCSI yang ada. Instal perangkat lunak Open-iSCSI Pada sistem CentOS 6.5 saya, paket Open-iSCSI tidak diinstal secara default. Anda dapat memeriksa untuk melihat apakah sistem Anda memiliki paket yang diinstal dengan menjalank |
Desember 21, 2018 |
SQL Server untuk Linux – Publik Preview Sekarang TersediaSQL Server untuk Linux – Publik Preview Sekarang TersediaPratinjau publik untuk SQL Server v.Next sekarang tersedia. Microsoft akhirnya menambahkan dukungan untuk Linux. Lihat tautan di bawah ini untuk informasi lebih lanjut. Saya akan mengunduh dan melihat fitur ketersediaan tinggi segera. Tetap disini! SQL Server v.Next Public Preview: https://www.Microsoft.com/en-us/sql-server/sql-server-vnext-including-Linux Original SQL Server Linux pengumuman: https://blogs.microsoft.com / blog / 2016/03/07 / mengumumkan-sql-server-on-linux / Direproduksi dengan izin dari Linuxclustering |
Desember 20, 2018 |
Konfigurasikan Cluster Failover Linux Di Amazon EC2 Tanpa Penyimpanan BersamaLangkah-demi-Langkah: Cara Mengonfigurasi Cluster Failover Linux Di Amazon EC2 Tanpa Penyimpanan Bersama #amazon #aws #sanless #clusterDalam panduan langkah demi langkah ini saya akan membawa Anda melalui semua langkah yang diperlukan untuk mengonfigurasi kluster MySQL 2-simpul yang sangat tersedia (plus server saksi) di Cloud Compute Cloud Amazon (Amazon EC2). Panduan ini mencakup screenshot, perintah shell dan cuplikan kode sebagaimana mestinya. Saya berasumsi bahwa Anda agak akrab dengan Amazon EC2 dan sudah memiliki akun. Jika tidak, Anda dapat mendaftar hari ini. Saya juga akan berasumsi bahwa Anda memiliki keterampilan administrasi sistem linux dasar serta memahami konsep pengelompokan failover dasar seperti Virtual IP, dll. Penafian: Cloud adalah target yang bergerak cepat. Dengan demikian, fitur / layar / tombol akan berubah seiring waktu sehingga pengalaman Anda mungkin sedikit berbeda dari apa yang Anda lihat di bawah. Sementara panduan ini akan menunjukkan kepada Anda bagaimana membuat database MySQL sangat tersedia, Anda pasti dapat menyesuaikan informasi dan proses ini untuk melindungi aplikasi atau database lain, seperti SAP, Oracle, PostgreSQL, server file NFS, dan banyak lagi. Ini adalah langkah-langkah tingkat tinggi untuk membuat basis data MySQL yang sangat tersedia dalam Amazon EC2:
IkhtisarArtikel ini akan menjelaskan cara membuat kluster dalam satu wilayah Amazon EC2. Node kluster (node1, node2 dan server saksi) akan berada di Zona Ketersediaan yang berbeda untuk ketersediaan maksimum. Ini juga berarti bahwa node akan berada di subnet yang berbeda. Konfigurasi akan terlihat seperti i
Buat Awan Pribadi Virtual (VPC)Pertama, buat Virtual Private Cloud (alias VPC). VPC adalah jaringan terisolasi dalam cloud Amazon yang didedikasikan untuk Anda. Anda memiliki kontrol penuh atas hal-hal seperti blok alamat IP dan subnet, tabel rute, grup keamanan (yaitu firewall), dan banyak lagi. Anda akan meluncurkan mesin virtual Azure Iaas (VMs) ke dalam Jaringan Virtual Anda. Dari dasbor AWS utama, pilih "VPC" Di Buat Sebuah Gateway InternetSelanjutnya, buat Gateway Internet. Ini diperlukan jika Anda ingin Instances (VMs) Anda dapat berkomunikasi dengan internet. Di menu sebelah kiri, pilih Gateway Internet dan klik tombol Buat Gateway Internet. Beri nama, dan buat: Selanju Buat Subnet (Zona Ketersediaan)Selanjutnya, buat 3 subnet. Setiap subnet akan berada di Zona Ketersediaannya sendiri. 3 Instance (VMs: node1, node2, witness) akan diluncurkan ke dalam subnet terpisah (dan oleh karena itu Zona Ketersediaan) sehingga kegagalan Zona Ketersediaan tidak akan mengambil beberapa simpul dari gugus. Wilayah AS Barat (Oregon), alias us-west-2, memiliki 3 zona ketersediaan (us-west-2a, us-west-2b, us-west-2c). Buat 3 subnet, satu di masing-masing dari 3 zona ketersediaan. Di bawah VPC Dashboard, navigasikan ke Subnet, lalu buat Subnet: B Konfigurasi Tabel RutePerbarui tabel rute VPC sehingga lalu lintas ke dunia luar dikirimkan ke Gateway Internet yang dibuat pada langkah sebelumnya. Dari Dasbor VPC, pilih Tabel Rute. Buka tab Rute, dan secara default hanya satu rute akan ada yang memungkinkan lalu lintas hanya dalam VPC. Klik Edit: Konfigurasikan Grup KeamananEdit Grup Keamanan (firewall virtual) untuk memungkinkan lalu lintas SSH dan VNC yang masuk. Keduanya nantinya akan digunakan untuk mengkonfigurasi instance linux serta instalasi / konfigurasi dari perangkat lunak cluster. Di menu sebelah kiri, pilih "Grup Keamanan" lalu klik tab "Inbound Rules". Klik Edit: T Contoh PeluncuranKami akan menyediakan 3 Mesin Virtual di dalam panduan ini. Dua VM pertama (disebut "node1" dan "node2") akan berfungsi sebagai node klaster dengan kemampuan untuk membawa database MySQL dan sumber daya terkait secara online. VM ketiga akan bertindak sebagai server saksi cluster untuk perlindungan tambahan terhadap split-brain. Untuk memastikan ketersediaan maksimum, ketiga VM akan dikerahkan ke Zona Ketersediaan yang berbeda dalam satu wilayah. Ini berarti setiap instance akan berada di subnet yang berbeda. Pergi ke dashboard AWS utama, dan pilih EC2: Buat "node1"Buat instance pertama Anda ("node1"). Klik Launch Instance Buat "node2"Ulangi langkah-langkah di atas untuk membuat instance linux kedua Anda (node2). Konfigurasikan persis seperti Node1. Namun, pastikan Anda menerapkannya ke "Subnet2" (zona ketersediaan kami-barat-2b). Rentang IP untuk Subnet2 adalah 10.0.1.0/24, jadi IP 10.0.1.4 digunakan di sini: P Buat "saksi"Ulangi langkah-langkah di atas untuk membuat instance linux ketiga Anda (saksi). Konfigurasikan persis seperti Node1 & Node2, KECUALI Anda TIDAK perlu menambahkan disk kedua, karena hal ini hanya akan bertindak sebagai saksi bagi kluster, dan tidak akan pernah menghadirkan MySQL secara daring. Pastikan Anda menerapkannya ke "Subnet3" (zona ketersediaan kami-barat-2c). Rentang IP untuk Subnet2 adalah 10.0.2.0/24, jadi IP 10.0.2.4 digunakan di sini: Mungkin diperlukan sedikit waktu untuk 3 kali persiapan Anda. Setelah selesai, Anda akan melihat daftar tersebut berjalan di konsol EC2 Anda: Buat IP ElastisSelanjutnya, buat IP Elastis, yang merupakan alamat IP publik yang akan digunakan untuk menghubungkan Anda dengan instance dari dunia luar. Pilih IP Elastis di menu sebelah kiri, lalu klik "Alokasikan Alamat Baru": Buat Entri Rute untuk IP VirtualPada titik ini semua 3 instance telah dibuat, dan tabel rute perlu diperbarui sekali lagi agar IP Virtual kluster dapat berfungsi. Dalam konfigurasi klaster multi-subnet ini, Virtual IP harus tinggal di luar jangkauan CIDR yang dialokasikan ke VPC Anda. Tentukan rute baru yang akan mengarahkan lalu lintas ke IP Virtual kluster (10.1.0.10) ke nodus klaster utama (Node1) Dari Dasbor VPC, pilih Tabel Rute, klik Edit. Tambahkan rute untuk "10.1.0.10/32" dengan tujuan Node1: Nonaktifkan Sumber / Dest Memeriksa untuk ENISelanjutnya, nonaktifkan Source / Dest Memeriksa untuk Elastic Network Interfaces (ENI) dari node cluster Anda. Ini diperlukan agar instance dapat menerima paket jaringan untuk alamat IP virtual kluster. Lakukan ini untuk semua ENI. Pilih "Network Interfaces", klik kanan pada ENI, dan pilih "Change Source / Dest Check". Dapatkan ID Kunci Akses dan Kunci Akses RahasiaKemudian dalam panduan ini, perangkat lunak kluster akan menggunakan Antarmuka Baris Perintah AWS (CLI) untuk memanipulasi entri tabel rute untuk IP Virtual klaster untuk mengalihkan lalu lintas ke node kluster aktif. Agar ini berfungsi, Anda harus mendapatkan ID Kunci Akses dan Kunci Akses Rahasia agar AWS CLI dapat diautentikasi dengan benar. Di kanan atas EC2 Dashboard, klik pada nama Anda, dan di bawahnya pilih "Kredensial Keamanan" dari drop-down: Memp Konfigurasi OS LinuxHubungkan ke instance linux (s):Untuk terhubung ke instance linux yang baru dibuat (melalui SSH), klik kanan pada instance dan pilih "Connect". Ini akan menampilkan instruksi untuk menghubungkan ke instance. Anda akan memerlukan File Kunci Pribadi yang Anda buat / unduh pada langkah sebel $ sudo su - Edit / etc / hostsKecuali Anda sudah memiliki pengaturan server DNS, Anda akan ingin membuat entri file host pada semua 3 server sehingga mereka dapat menyelesaikan satu sama lain dengan nama Tambahkan baris berikut ke akhir file / etc / hosts Anda: 10.0.0.4 simpul1 10.0.1.4 node2 10.0.2.4 saksi 10.1.0.10 mysql-vip Nonaktifkan SELinuxEdit / etc / sysconfig / linux dan atur "SELINUX = dinonaktifkan": # vi / etc / sysconfig / selinux # File ini mengontrol status SELinux pada sistem. # SELINUX = dapat mengambil salah satu dari tiga nilai ini: # Enforcing - Kebijakan keamanan SELinux diberlakukan. # Permissive - SELinux mencetak peringatan daripada menegakkan. # Disabled - Tidak ada kebijakan SELinux yang dimuat. SELINUX = dinonaktifkan # SELINUXTYPE = dapat mengambil salah satu dari dua nilai ini: # Targeted - Proses yang ditargetkan terlindungi, # Mls - Perlindungan Multi Level Security. SELINUXTYPE = ditargetkan Setel Nama InangSecara default, instance Linux ini akan memiliki nama host yang didasarkan pada alamat IP server, sesuatu seperti "ip-10-0-0-4.us-west-2.compute.internal" Anda mungkin memperhatikan bahwa jika Anda mencoba untuk memodifikasi nama host dengan cara "normal" (misal mengedit / etc / sysconfig / network, dll), setelah setiap reboot, ia akan kembali ke semula !! Saya menemukan untaian besar di forum diskusi AWS yang menjelaskan cara mendapatkan hostname agar tetap statis setelah reboot. Detail di sini: https://forums.aws.amazon.com/message.jspa?messageID=560446 Komentar modul yang mengatur nama host di file “/etc/cloud/cloud.cfg”. Modul-modul berikut dapat dikomentari menggunakan #. # - set_hostname # - update_hostname Selanjutnya, ubah juga nama host Anda di / etc / hostname. Reboot Cluster NodesReboot semua 3 instance sehingga SELinux dinonaktifkan, dan perubahan hostname berpengaruh. Instal dan Konfigurasikan VNC (dan paket terkait)Untuk mengakses GUI server linux kami, dan kemudian menginstal dan mengkonfigurasi kluster kami, menginstal server VNC, serta beberapa paket lain yang diperlukan (perangkat lunak klaster membutuhkan redhat-lsb dan rpms patch). # yum groupinstall "X Window System" # yum groupinstall "Server dengan GUI" # yum instal tigervnc-server xterm wget unzip patch redhat-lsb # vncpasswd Untuk RHEL 7.x / CentOS7.x: URL berikut adalah panduan yang bagus untuk menjalankan Server VNC di RHEL 7 / CentOS 7: https://www.digitalocean.com/community/tutorials/how-to-install-and -configure-vnc-remote-access-for-the-gnome-desktop-on-centos-7 Catatan: Contoh konfigurasi ini menjalankan VNC pada tampilan 2 (: 2, alias port 5902) dan sebagai root (tidak aman). Atur sesuai! # cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service # vi /etc/systemd/system/vncserver@:2.service [Layanan] Ketik = forking # Bersihkan semua file yang ada di /tmp/.X11-unix environment ExecStartPre = / bin / sh -c '/ usr / bin / vncserver -kill% i> / dev / null 2> & 1 || : ' ExecStart = / sbin / runuser -l root -c "/ usr / bin / vncserver% i -geometry 1024x768" PIDFile = / root / .vnc /% H% i.pid ExecStop = / bin / sh -c '/ usr / bin / vncserver -kill% i> / dev / null 2> & 1 || : ' # systemctl daemon-ulang # systemctl enable vncserver @: 2.service # vncserver: 2 -geometry 1024x768 Untuk sistem RHEL / CentOS 6.x: # vi / etc / sysconfig / vncservers VNCSERVERS = "2: root" VNCSERVERARGS [2] = "- geometri 1024x768" # service vncserver mulai # chkconfig vncserver aktif Buka klien VNC, dan hubungkan ke <ElasticIP: 2>. Jika Anda tidak bisa mendapatkannya, kemungkinan firewall linux Anda menghalangi. Buka port VNC yang kami gunakan di sini (port 5902), atau untuk saat ini, nonaktifkan firewall (BUKAN DIREKOMENDASIKAN UNTUK LINGKUNGAN PRODUKSI): # systemctl hentikan firewalld # systemctl menonaktifkan firewalld
Partisi dan Format disk “data”Ketika instance linux diluncurkan, dan disk tambahan ditambahkan ke setiap node cluster untuk menyimpan data aplikasi yang akan kami lindungi. Dalam hal ini kebetulan database MySQL. Disk kedua akan muncul sebagai / dev / xvdb. Anda dapat menjalankan perintah "fdisk-l" untuk memverifikasi. Anda akan melihat bahwa / dev / xvda (OS) sudah digunakan. # fdisk-l Disk / dev / xvda: 10.7 GB, 10737418240 byte, 20971520 sektor Unit = sektor 1 * 512 = 512 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte I / O ukuran (minimum / optimal): 512 byte / 512 bytes Jenis label disk: gpt # Mulai Akhir Ukuran Tipe Nama 1 2048 4095 1M BIOS boot parti 2 4096 20971486 10G Microsoft dasar Disk / dev / xvdb: 2147 MB, 2147483648 byte, 4194304 sektor Unit = sektor 1 * 512 = 512 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte Ukuran I / O (minimum / optimal): 512 byte / 512 byte Di sini saya akan membuat partisi (/ dev / xvdb1), memformatnya, dan memasangnya di default lokasi untuk MySQL, yang / var / lib / mysql. Lakukan langkah-langkah berikut pada KEDUA "node1" dan "node2": # fdisk / dev / xvdb Selamat datang di fdisk (util-linux 2.23.2). Perubahan hanya akan tersimpan di memori, sampai Anda memutuskan untuk menulisnya. Hati-hati sebelum menggunakan perintah tulis. Perangkat tidak berisi tabel partisi yang dikenali Membangun disklabel DOS baru dengan pengidentifikasi disk 0x8c16903a. Perintah (m untuk bantuan): n Jenis partisi: p primer (0 utama, 0 diperpanjang, 4 gratis) e diperpanjang Pilih (standar p): hal Nomor partisi (1-4, standar 1): 1 Sektor pertama (2048-4194303, standar 2048): <enter> Menggunakan nilai default 2048 Sektor terakhir, sektor atau ukuran {K, M, G} (2048-4194303, default 4194303): <enter> Menggunakan nilai default 4194303 Partisi 1 jenis Linux dan ukuran 2 GiB diatur Perintah (m untuk bantuan): w Tabel partisi telah diubah! Memanggil ioctl () untuk membaca kembali tabel partisi. Sinkronisasi disk. # Mkfs.ext4 / dev / xvdb1 # mkdir / var / lib / mysql Pada node1, mount filesystem: # mount / dev / xvdb1 / var / lib / mysql Instal Alat API EC2EC2 API Tools (EC2 CLI) harus diinstal pada setiap node cluster, sehingga perangkat lunak klaster nantinya dapat memanipulasi Tabel Rute, memungkinkan konektivitas ke Virtual IP. URL berikut adalah panduan yang sangat baik untuk mengatur ini. unzip, dan pindahkan alat CLI ke lokasi standar (/ opt / aws): # wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip # unzip ec2-api-tools.zip # mv ec2-api-tools-1.7.5.1 / / opt / aws / # export EC2_HOME = "/ opt / aws" Jika java belum diinstal (jalankan "java mana" untuk memeriksanya), instal: # yum install java-1.8.0-openjdk example (Berdasarkan konfigurasi default sistem RHEL 7.2. Sesuaikan sesuai) # export JAVA_HOME = "/ usr / lib / jvm / java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64 / jre /" Anda perlu Kunci Akses AWS dan Kunci Rahasia AWS. Pertahankan nilai-nilai ini berguna, karena nilai-nilai ini akan dibutuhkan nanti selama pengaturan kluster juga! Rujuk ke URL berikut untuk informasi lebih lanjut: https://console.aws.amazon.com/iam/home?#security_credential # export AWS_ACCESS_KEY = Anda-aws-access-key-id # export AWS_SECRET_KEY = kunci-aws-rahasia Anda Uji fungsionalitas utilitas CLI: # / opt / aws / bin / ec2-describ-regions REGION eu-west-1 ec2.eu-west-1.amazonaws.com REGION ap-tenggara-1 ec2.ap-southeast-1.amazonaws.com REGION ap-tenggara-2 ec2.ap-southeast-2.amazonaws.com REGION eu-central-1 ec2.eu-central-1.amazonaws.com REGION ap-northeast-2 ec2.ap-northeast-2.amazonaws.com REGION ap-northeast-1 ec2.ap-northeast-1.amazonaws.com REGION us-east-1 ec2.us-east-1.amazonaws.com REGION sa-east-1 ec2.sa-east-1.amazonaws.com REGION us-west-1 ec2.us-west-1.amazonaws.com REGION us-west-2 ec2.us-west-2.amazonaws.com
Instal dan Konfigurasikan MySQLSelanjutnya, instal instal paket-paket MySQL, inisialisasi basis data sampel, dan atur kata sandi "root" untuk MySQL. Di RHEL7.X, paket MySQL telah diganti dengan paket MariaDB. Pada "node1":# yum instal mariadb mariadb-server # mount / dev / xvdb1 / var / lib / mysql # / usr / bin / mysql_install_db --datadir = "/ var / lib / mysql /" --user = mysql # mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 --datadir = / var / lib / mysql --log & # # # CATATAN: Perintah selanjutnya ini memungkinkan koneksi jarak jauh dari host APAPUN. BUKAN ide bagus untuk produksi! # echo “perbarui pengguna mengatur Host = '%' di mana Host = 'node1'; hak istimewa flush | mysql mysql # # # Atur kata sandi root MySQL ke 'SIOS' # echo "perbarui set pengguna Kata Sandi = PASSWORD ('SIOS') di mana Pengguna = 'root'; hak istimewa flush" | mysql mysql Buat file konfigurasi MySQL. Kami akan menempatkan ini pada disk data (yang nantinya akan direplikasi – /var/lib/mysql/my.cnf). Contoh: # vi /var/lib/mysql/my.cnf [mysqld] datadir = / var / lib / mysql socket = / var / lib / mysql / mysql.sock pid-file = / var / run / mariadb / mariadb.pid pengguna = root port = 3306 # Menonaktifkan tautan simbolis disarankan untuk mencegah berbagai risiko keamanan symbolic-links = 0 [mysqld_safe] log-error = / var / log / mariadb / mariadb.log pid-file = / var / run / mariadb / mariadb.pid [klien] pengguna = root kata sandi = SIOS Pindahkan file konfigurasi MySQL asli, jika ada: # mv /etc/my.cnf /etc/my.cnf.orig Pada "node2":Pada "node2", Anda HANYA perlu menginstal paket MariaDB / MySQL. Langkah-langkah lain tidak diperlukan: [root @ node2 ~] # yum instal mariadb mariadb-server Instal dan Konfigurasikan ClusterPada titik ini, kami siap untuk menginstal dan mengkonfigurasi cluster kami. SIOS Protection Suite untuk Linux (alias SPS-Linux) akan digunakan dalam panduan ini sebagai teknologi pengelompokan. Ini menyediakan fitur failover clustering (LifeKeeper) ketersediaan tinggi serta replikasi data level blok waktu nyata (DataKeeper) dalam satu solusi terintegrasi. SPS-Linux memungkinkan Anda untuk menyebarkan cluster "SANLess", alias cluster "nothing nothing" yang berarti bahwa node cluster tidak memiliki penyimpanan bersama, seperti halnya EC2 Instances. Instal SIOS Protection Suite untuk LinuxLakukan langkah-langkah berikut pada ALL 3 VM (node1, node2, saksi): Unduh file gambar instalasi SPS-Linux (sps.img) dan dan dapatkan lisensi percobaan atau beli lisensi permanen. Hubungi SIOS untuk informasi lebih lanjut. Anda akan mengulang mount itu dan menjalankan skrip "setup" di dalam, sebagai root (atau "sudo su -" pertama untuk mendapatkan shell root) Sebagai contoh: # mkdir / tmp / install # mount -o loop sps.img / tmp / install # cd / tmp / install # ./mempersiapkan Selama skrip instalasi, Anda akan diminta untuk menjawab sejumlah pertanyaan. Anda akan menekan Enter di hampir setiap layar untuk menerima nilai default. Perhatikan pengecualian berikut:
Instal paket Saksi / KuorumPaket Dukungan Server Kuorum / Saksi untuk LifeKeeper (steeleye-lkQWK) yang dikombinasikan dengan proses failover yang ada pada inti LifeKeeper memungkinkan kegagalan sistem terjadi dengan tingkat kepercayaan yang lebih besar dalam situasi di mana total kegagalan jaringan bisa terjadi. Ini secara efektif berarti bahwa kegagalan dapat dilakukan sambil sangat mengurangi risiko situasi "otak ganda". Instal rpm Saksi / Kuorum pada ketiga simpul (simpul1, simpul2, saksi): # cd / tmp / install / kuorum # Rpm -Uvh steeleye-lkQWK-9.0.2-6513.noarch.rpm Pada SEMUA 3 node (node1, node2, saksi), edit / etc / default / LifeKeeper, atur NOBCASTPING = 1 ON ONLY server Witness ("saksi"), edit / etc / default / LifeKeeper, set WITNESS_MODE = off / none Instal Paket EC2 Recovery KitSPS-Linux menyediakan fitur spesifik yang memungkinkan sumber daya untuk failover antara node di zona dan wilayah ketersediaan yang berbeda. Di sini, EC2 Recovery Kit (mis. Agen klaster) digunakan untuk memanipulasi Tabel Rute sehingga koneksi ke IP Virtual dialihkan ke node kluster yang aktif. Instal EC2 rpm (node1, node2): # cd / tmp / install / amazon # Rpm -Uvh steeleye-lkECC-9.0.2-6513.noarch.rpm Instal kunci LisensiPada ketiga node, gunakan perintah "lkkeyins" untuk menginstal file lisensi yang Anda peroleh dari SIOS: # / opt / LifeKeeper / bin / lkkeyins <path_to_file> / <filename> .lic Mulai LifeKeeperPada ketiga node, gunakan perintah "lkstart" untuk memulai perangkat lunak cluster: # / opt / LifeKeeper / bin / lkstart Tetapkan Izin Pengguna untuk GUI LifeKeeperPada ketiga node, buat akun pengguna linux baru (mis. "Tony" dalam contoh ini). Edit / etc / group dan tambahkan pengguna "tony" ke grup "lkadmin" untuk memberikan akses ke GUI LifeKeeper. Secara default hanya "root" adalah anggota grup, dan kami tidak memiliki kata sandi root di sini: # useradd tony # passwd tony # vi / etc / group lkadmin: x: 1001: root, tony Buka GUI LifeKeeperBuat koneksi VNC ke alamat Elastic IP (Public IP) dari node1. Berdasarkan konfigurasi VNC dari atas, Anda akan terhubung ke <Public_IP>: 2 menggunakan kata sandi VNC yang Anda tentukan sebelumnya. Setelah masuk, buka jendela terminal dan jalankan LifeKeeper GUI menggunakan perintah berikut: # / opt / LifeKeeper / bin / lkGUIapp & Anda akan diminta untuk terhubung ke node cluster pertama Anda ("node1"). Masukkan linux userid dan kata sandi yang ditentukan selama pembuatan VM Buat Jalur KomunikasiKlik kanan pada "node1" dan pilih Create Comm Pat
Ikon di depan server telah berubah dari "tanda centang" hijau ke "tanda bahaya" kuning. Ini karena kami hanya memiliki jalur komunikasi tunggal antar node. Jika VM memiliki beberapa NIC (informasi tentang cara membuat Azure VM dengan banyak NIC dapat ditemukan di sini, tetapi tidak akan dibahas dalam artikel ini), Anda akan membuat jalur kom yang berlebihan antara setiap server. Verifikasi Jalur KomunikasiGunakan perintah "lcdstatus" untuk melihat status sumber daya gugus. Jalankan perintah berikut untuk memverifikasi bahwa Anda telah membuat jalur kom dengan benar pada setiap node ke dua server lain yang terlibat: # / opt / LifeKeeper / bin / lcdstatus -q -d node1 MESIN ALAMAT JARINGAN / ALAT-ALAT PERANGKAT KERJA / NEGARA PERANGKAT PRIO node2 TCP 10.0.0.4/ 10.0.1.4 HIDUP 1 saksi TCP 10.0.0.4/10.0.2.4 HIDUP 1 # / opt / LifeKeeper / bin / lcdstatus -q -d node2 MESIN JARINGAN ALAMAT / PERANGKAT NEGARA NEGARA PRIO node1 TCP 10.0.1.4/10.0.0.4 HIDUP 1 saksi TCP 10.0.1.4/10.0.2.4 HIDUP 1 # / opt / LifeKeeper / bin / lcdstatus -q -d saksi MESIN JARINGAN ALAMAT / PERANGKAT NEGARA NEGARA PRIO node1 TCP 10.0.2.4/10.0.0.4 HIDUP 1 node2 TCP 10.0.2.4/10.0.1.4 HIDUP 1 Membuat sumber daya klaster Replikasi Data (mis. Cermin)Selanjutnya, buat sumber daya Replikasi Data untuk mereplikasi partisi / var / lib / mysql dari node1 (sumber) ke node2 (target). Klik ikon "tambah hijau" untuk membuat sumber daya Silakan Pilih Kit Pemulihan: Replikasi Data Tipe Switchback: cerdas Server: node1 Jenis Hierarki: Replikasi Sistem File yang Keluar Mount Point yang ada: / var / lib / mysql Sumber Daya Replikasi Data Tag: datarep-mysql Tab Sumber Daya Sistem File: / var / lib / mysql File Bitmap: (nilai default) Aktifkan Replikasi Asinkron: Tidak Setelah sumber daya dibuat, wisaya “Perpanjang” (mis. Tentukan server cadangan) akan muncul. Gunakan pilihan berikut: Server Target: node2 Tipe Switchback: Cerdas Prioritas Templat: 1 Prioritas Target: 10 Disk Target: / dev / xvdb1 Sumber Daya Replikasi Data Tag: datarep-mysql File Bitmap: (nilai default) Jalur Replikasi: 10.0.0.4/10.0.1.4 Mount Point: / var / lib / mysql Root Tag: / var / lib / mysql Cluster akan terlihat seperti ini: Buat IP VirtualSelanjutnya, buat sumber daya cluster IP Virtual. Klik ikon "tambah hijau" untuk membuat sumber daya ba Pilih Kit Pemulihan: IP Tipe Switchback: Cerdas Sumberdaya IP: 10.1.0.10 Netmask: 255.255.255.0 Antarmuka Jaringan: eth0 Tag Sumber Daya IP: ip-10.1.0.10 Perpanjang sumber daya IP dengan pilihan-pilihan ini: Tipe Switchback: Cerdas Prioritas Templat: 1 Prioritas Target: 10 Sumberdaya IP: 10.1.0.10 Netmask: 255.255.255.0 Antarmuka Jaringan: eth0 Tag Sumber Daya IP: ip-10.1.0.10 Cluster sekarang akan terlihat seperti ini, dengan sumber daya Mirror dan IP dibuat: Konfigurasikan Daftar Ping untuk sumber daya IPSecara default, SPS-Linux memantau kesehatan sumber daya IP dengan melakukan ping siaran. Di banyak lingkungan virtual dan cloud, broadcast ping tidak berfungsi. Pada langkah sebelumnya, kita mengatur “NOBCASTPING = 1” di / etc / default / LifeKeeper untuk mematikan pemeriksaan ping broadcast. Sebagai gantinya, kami akan mendefinisikan daftar ping. Ini adalah daftar alamat IP yang akan di-ping selama pemeriksaan kesehatan IP untuk sumber daya IP ini. Dalam panduan ini, kami akan menambahkan server saksi (10.0.2.4) ke daftar ping kami. Klik kanan pada sumber daya IP (ip-10.1.0.10) dan pilih Properties: Anda akan me Buat hirarki sumber daya MySQLSelanjutnya, buat sumber daya cluster MySQL. Sumber daya MySQL bertanggung jawab untuk menghentikan / memulai / memonitor database MySQL Anda. Sebelum membuat sumber daya MySQL, pastikan database berjalan. Jalankan “ps -ef | grep sql ”untuk memeriksa. Jika berjalan, bagus – tidak ada hubungannya. Jika tidak, mulai cadangan database: # mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 --datadir = / var / lib / mysql --log & Untuk membuat, klik ikon "hijau plus" untuk membuat sumber daya baru: Ikuti wizard dengan untuk membuat sumber daya IP dengan pilihan ini: Pilih Recovery Kit: Database MySQL Tipe Switchback: Cerdas Server: node1 Lokasi my.cnf: / var / lib / mysql Lokasi executable MySQL: / usr / bin Tag Database: mysql Perpanjang sumber daya IP dengan pilihan berikut: Server Target: node2 Tipe Switchback: cerdas Prioritas Templat: 1 Prioritas Target: 10 Akibatnya, kluster Anda akan terlihat sebagai berikut. Perhatikan bahwa sumber Replikasi Data dipindahkan secara otomatis di bawah basis data (ketergantungan dibuat secara otomatis) untuk memastikannya selalu dibawa online sebelum basis data: Buat Sumber Daya EC2 Untuk Mengelola Tabel Rute Setelah GagalSPS-Linux menyediakan fitur spesifik yang memungkinkan sumber daya untuk failover antara node di zona dan wilayah ketersediaan yang berbeda. Di sini, EC2 Recovery Kit (mis. Agen klaster) digunakan untuk memanipulasi Tabel Rute sehingga koneksi ke IP Virtual dialihkan ke node kluster yang aktif. Untuk membuat, klik ikon "tambah hijau" untuk membuat sumber daya baru: Ikuti wizard dengan untuk membuat sumber daya EC2 dengan pilihan ini: Pilih Kit Pemulihan: Amazon EC2 Tipe Switchback: Cerdas Server: node1 EC2 Home: / opt / aws URL EC2: ec2.us-west-2.amazonaws.com Kunci Akses AWS: (masukkan Kunci Akses yang diperoleh sebelumnya) Kunci Rahasia AWS: (masukkan Kunci Rahasia yang diperoleh sebelumnya) Tipe Sumber Daya EC2: RouteTable (Backend cluster) Sumberdaya IP: ip-10.1.0.10 Tag Sumber Daya EC2: ec2-10.1.0.10 Perpanjang sumber daya IP dengan pilihan berikut: Server Target: node2 Tipe Switchback: cerdas Prioritas Templat: 1 Prioritas Target: 10 Tag Sumber Daya EC2: ec2-10.1.0.10 Cluster akan terlihat seperti ini. Perhatikan bagaimana sumber daya EC2 di bawah sumber daya IP: Buat Ketergantungan antara sumber daya IP dan sumber daya Database MySQLBuat ketergantungan antara sumber daya IP dan sumber daya Database MySQL sehingga mereka gagal bersama sebagai sebuah kelompok. Klik kanan pada sumber daya "mysql" dan pilih "Buat Ketergantungan" Uji Konektivitas ClusterPada titik ini, semua konfigurasi Amazon EC2 dan Cluster kami sudah selesai! Sumber daya cluster saat ini aktif pada node [root @ saksi ~] # yum -y instal mysql Uji konektivitas MySQL ke kluster: [root @itness ~] # mysql --host = 10.1.0.10 mysql -u root -p Jalankan query MySQL berikut untuk menampilkan nama host dari node cluster aktif: MariaDB [mysql]> pilih @@ hostname; ------------ | @@ hostname | ------------ | node1 | ------------ 1 baris dalam set (0,00 dtk) MariaDB [mysql]> Menggunakan LifeKeeper GUI, failover dari Node1 -> Node2 ″. Klik kanan pada sumber daya mysql di bawah node2, dan pilih "Dalam Layanan …": S MariaDB [mysql]> pilih @@ hostname; ERROR 2006 (HY000): Server MySQL telah hilang Tidak ada koneksi. Mencoba menyambung kembali ... ID koneksi: 12 Database saat ini: mysql ------------ | @@ hostname | ------------ | node2 | ------------ 1 baris dalam set (0,53 detik) MariaDB [mysql]> Menyukai panduan langkah demi langkah ini untuk Mengkonfigurasi Linux Failover Cluster Di Amazon EC2 Tanpa Penyimpanan Bersama, baca lebih lanjut di sini Diproduksi ulang dengan izin dari Linuxclustering |
Desember 19, 2018 |
Linux failover cluster di Microsoft Azure IaaS tanpa penyimpanan bersamaStep-By-Step: Cara Mengonfigurasi Cluster Failover Linux Di Microsoft Azure IaaS Tanpa Penyimpanan Bersama #azure #sanlessDalam panduan langkah demi langkah ini saya akan membawa Anda melalui semua langkah yang diperlukan untuk mengkonfigurasi cluster MySQL 2-node yang sangat tersedia (plus saksi server) di Microsoft Azure IaaS (Infrastruktur sebagai Layanan). Panduan ini mencakup screenshot, perintah shell dan cuplikan kode sebagaimana mestinya. Saya berasumsi bahwa Anda agak akrab dengan Microsoft Azure dan sudah memiliki akun Azure dengan langganan terkait. Jika tidak, Anda dapat mendaftar untuk mendapatkan akun gratis hari ini. Saya juga akan berasumsi bahwa Anda memiliki keterampilan administrasi sistem linux dasar serta memahami konsep pengelompokan failover dasar seperti Virtual IP, dll. Penafian: Azure adalah target yang bergerak cepat. Ini menjadi lebih baik dan lebih baik setiap hari! Dengan demikian, fitur / layar / tombol akan berubah seiring waktu sehingga pengalaman Anda mungkin sedikit berbeda dari apa yang Anda lihat di bawah. Sementara panduan ini akan menunjukkan kepada Anda bagaimana membuat database MySQL sangat tersedia, Anda pasti dapat menyesuaikan informasi dan proses ini untuk melindungi aplikasi atau database lain, seperti SAP, Oracle, PostgreSQL, server file NFS, dan banyak lagi. Ini adalah langkah-langkah tingkat tinggi untuk membuat database MySQL yang sangat tersedia dalam Microsoft Azure IaaS:
IkhtisarArtikel ini akan menginformasikan langkah-langkah untuk mengkonfigurasi Linux Failover Cluster Di Microsoft Azure IaaS Tanpa Penyimpanan Bersama. Ini akan menjelaskan cara membuat kluster dalam satu wilayah Azure. Node cluster (node1, node2 dan server saksi) akan berada dalam Set Ketersediaan (3 Domain Fault yang berbeda dan Pembaruan Domain), terima kasih kepada Azure Resource Manager (ARM) baru. Kami akan membuat semua sumber daya menggunakan Manajer Sumber Daya Azure baru. Konfigurasi akan terlihat seperti i
Buat Grup Sumber DayaPertama, buat Grup Sumber Daya. Grup sumber daya Anda akan berakhir dengan memuat semua berbagai objek yang terkait dengan penyebaran klaster kami: mesin virtual, jaringan virtual, akun penyimpanan, dll. Di sini kita akan memanggil "cluster-sumber" sumber daya yang baru kita buat. Buat Jaringan Virtual (VNet)Membuat Jaringan Virtual akan menjadi langkah Anda berikutnya dalam menghubungkan Failover Cluster Linux Di Microsoft Azure IaaS Tanpa Penyimpanan Bersama. Jaringan Virtual adalah jaringan yang terisolasi dalam awan Azure yang didedikasikan untuk Anda. Anda memiliki kontrol penuh atas hal-hal seperti blok alamat IP dan subnet, perutean, kebijakan keamanan (yaitu firewall), pengaturan DNS, dan banyak lagi. Anda akan meluncurkan mesin virtual Azure Iaas (VMs) ke dalam Jaringan Virtual Anda. Buat Akun PenyimpananSebelum Anda menyediakan Mesin Virtual apa pun, Anda harus membuat Akun Penyimpanan tempat mereka akan disimpan. Buat Mesin Virtual di dalam Set KetersediaanKami akan menyediakan 3 Mesin Virtual dalam panduan ini. Dua VM pertama (saya akan menyebutnya "node1" dan "node2") akan berfungsi sebagai node klaster dengan kemampuan untuk membawa database MySQL dan sumber daya terkait secara online. VM ke-3 akan bertindak sebagai server saksi kluster untuk perlindungan tambahan terhadap perpecahan otak. Untuk memastikan ketersediaan maksimum, semua 3 VM akan ditambahkan ke Kumpulan Ketersediaan yang sama, memastikan bahwa mereka akan berakhir di Domain Fault yang berbeda dan Perbarui Domain. Buat "node1" VMBuat VM pertama Anda ("node1"). Dalam panduan ini kita akan menggunakan CentOS 6 Buat "node2" dan "saksi" VMsUlangi langkah-langkah di atas dua kali untuk membuat dua VM lagi. Saya membuat ukuran "A3 Standard" ukuran VM lain yang disebut "node2" dan ukuran "A1 Standard" VM yang disebut "saksi". Satu-satunya perbedaan di sini adalah Anda akan MENAMBAHKAN VM ini ke Kumpulan Ketersediaan ("ketersediaan-gugus-gugus") yang baru saja kami bu Tetapkan Alamat IP Statis VMVMs akan diatur dengan alamat IP berikut:
Ulangi langkah ini untuk setiap VM. Pilih VM Anda dan edit Antarmuka Jaringan P Tambahkan Data Disk ke cluster nodeSelanjutnya, kita perlu menambahkan disk ekstra ke node cluster kami ("node1" dan "node2"). Disk ini akan menyimpan database MySQL kami dan kemudian direplikasi antara node. Catatan: Anda TIDAK perlu menambahkan disk ekstra ke node “saksi”. Hanya "node1" dan "node2". Edit VM Anda, pilih Disk dan kemudian pasang disk baru: P Buat Aturan Keamanan Masuk untuk memungkinkan akses VNCJika VM Anda adalah bagian dari Network Security Group (NSG), yang secara default kemungkinannya adalah kecuali Anda menonaktifkannya selama pembuatan VM, satu-satunya port yang terbuka di "Azure firewall" adalah SSH (port 22). Nanti di panduan ini, saya akan menggunakan VNC untuk mengakses desktop "node1" dan mengonfigurasi gugus menggunakan GUI. Buat Aturan Keamanan Masuk untuk membuka akses VNC. Dalam panduan ini port 5902 digunakan. Sesuaikan ini sesuai berdasarkan konfigurasi VNC Anda. Mesin Virtual -> (pilih node1) -> Antarmuka jaringan -> (pilih NIC) -> Grup keamanan jaringan -> (pilih NSG) -> Aturan keamanan masuk -> Tambah Konfigurasi OS LinuxDi sinilah kita akan meninggalkan Portal Azure untuk sementara dan mendapatkan tangan kita kotor pada baris perintah, yang sebagai administrator Linux Anda harus digunakan sekarang. Anda tidak diberikan kata sandi root ke VM Linux Anda di Azure, jadi setelah Anda login sebagai pengguna yang ditentukan selama pembuatan VM, gunakan perintah "sudo" untuk mendapatkan hak akses root: $ sudo su - Edit / etc / hostsKecuali Anda sudah memiliki pengaturan server DNS, Anda akan ingin membuat entri file host pada semua 3 server sehingga mereka dapat menyelesaikan satu sama lain dengan nama Tambahkan baris berikut ke akhir file / etc / hosts Anda: 10.0.0.4 simpul1 10.0.0.5 node2 10.0.0.6 saksi 10.0.0.99 mysql-vip Nonaktifkan SELinuxEdit / etc / sysconfig / linux dan atur "SELINUX = dinonaktifkan": # vi / etc / sysconfig / selinux # File ini mengontrol status SELinux pada sistem. # SELINUX = dapat mengambil salah satu dari tiga nilai ini: # Enforcing - Kebijakan keamanan SELinux diberlakukan. # Permissive - SELinux mencetak peringatan daripada menegakkan. # Disabled - Tidak ada kebijakan SELinux yang dimuat. SELINUX = dinonaktifkan # SELINUXTYPE = dapat mengambil salah satu dari dua nilai ini: # Targeted - Proses yang ditargetkan terlindungi, # Mls - Perlindungan Multi Level Security. SELINUXTYPE = ditargetkan Konfigurasi iptables agar mengelompokkan IP Virtual akan berfungsiPENTING: Untuk mendapatkan konektivitas ke kluster Virtual IP untuk bekerja, dan juga memantau sumber daya IP, beberapa aturan iptabel perlu disetel. Catatan: 10.0.0.99 adalah IP Virtual yang akan kami gunakan di kluster kami, dan 3306 adalah port default yang digunakan MySQL saya. Pada node1 (10.0.0.4), jalankan perintah berikut: # iptables --fush # iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination 10.0.0.99:3306 # iptables -t nat -A POSTROUTING -p icmp -s 10.0.0.99 -j SNAT --ke-sumber 10.0.0.4 # layanan iptables simpan # chkconfig iptables aktif Pada Node2 (10.0.0.5), jalankan perintah berikut: # iptables --fush # iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination 10.0.0.99:3306 # iptables -t nat -A POSTROUTING -p icmp -s 10.0.0.99 -j SNAT --ke-sumber 10.0.0.5 # layanan iptables simpan # chkconfig iptables aktif Instal dan Konfigurasikan VNC (dan paket terkait)Untuk mengakses GUI server linux kami, untuk kemudian mengkonfigurasi kluster kami, instal server VNC pada node cluster Anda. Dalam pengaturan saya, saya hanya melakukan ini pada "node1" # yum menginstal tigervnc-server xterm # vncpasswd # vi / etc / sysconfig / vncservers VNCSERVERS = "2: root" VNCSERVERARGS [2] = "- geometri 1024x768" # service vncserver mulai # chkconfig vncserver aktif Uji konektivitas dengan membuka klien VNC di laptop / desktop Anda, dan hubungkan ke Public IP dari node cluster Anda Reboot Cluster NodesReboot node kluster Anda sehingga SELinux dinonaktifkan, dan disk kedua yang sebelumnya Anda tambahkan terdeteksi. Hanya "node1" dan "node2" perlu di-reboot. Partisi dan Format disk “data”Pada Langkah 6 dari panduan ini (“Tambah Data Disk ke cluster node”) kami melakukan itu… .menambahkan disk ekstra ke setiap node cluster untuk menyimpan data aplikasi yang akan kami lindungi. Dalam hal ini kebetulan database MySQL. Di Azure IaaS, Linux Virtual Machines menggunakan pengaturan berikut untuk disk:
Disk yang kami tambahkan pada Langkah 6 dari panduan ini akan muncul sebagai / dev / sdc. Anda dapat menjalankan perintah "fdisk-l" untuk memverifikasi. Anda akan melihat bahwa / dev / sda (OS) dan / dev / sdb (sementara) sudah memiliki partisi disk dan sedang digunakan. # fdisk-l Disk / dev / sdb: 306.0 GB, 306016419840 byte 255 kepala, 63 sektor / track, 37204 silinder Unit = silinder 16065 * 512 = 8225280 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte I / O size (minimum / optimal): 512 bytes / 512 bytes Pengenal disk: 0xd3920649 Perangkat Boot Mulai Akhir Blok Sistem Id / dev / sdb1 * 1 37205 298842112 83 Linux Disk / dev / sdc: 10.7 GB, 10737418240 byte 255 kepala, 63 sektor / track, 1305 silinder Unit = silinder 16065 * 512 = 8225280 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte I / O size (minimum / optimal): 512 bytes / 512 bytes Pengenal disk: 0x00000000 Disk / dev / sda: 32,2 GB, 32212254720 byte 255 kepala, 63 sektor / track, 3916 silinder Unit = silinder 16065 * 512 = 8225280 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte I / O size (minimum / optimal): 512 bytes / 512 bytes Pengidentifikasi disk: 0x000c23d3 Perangkat Boot Mulai Akhir Blok Sistem Id / dev / sda1 * 1 3789 30432256 83 Linux / dev / sda2 3789 3917 1024000 82 Linux swap / Solaris Di sini saya akan membuat partisi (/ dev / sdc1), memformatnya, dan memasangnya di lokasi default untuk MySQL, yang / var / lib / mysql. Lakukan langkah-langkah berikut pada KEDUA "node1" dan "node2": # fdisk / dev / sdc Perintah (m untuk bantuan): n Komando aksi e diperpanjang p partisi primer (1-4) p Nomor partisi (1-4): 1 Silinder pertama (1-1305, default 1): <enter> Menggunakan nilai default 1 Silinder, silinder atau ukuran terakhir {K, M, G} (1-1305, default 1305): <enter> Menggunakan nilai default 1305 Perintah (m untuk bantuan): w Tabel partisi telah diubah! Memanggil ioctl () untuk membaca kembali tabel partisi. Sinkronisasi disk. [root @ node1 ~] # # mkfs.ext4 / dev / sdc1 # mkdir / var / lib / mysql Pada node1, mount filesystem: # mount / dev / sdc1 / var / lib / mysql Instal dan Konfigurasi MySQLSelanjutnya, instal instal paket-paket MySQL, inisialisasi database contoh, dan atur kata sandi “root” untuk MySQL. Pada “node1”:# yum -y install mysql mysql-server # / usr / bin / mysql_install_db --datadir = "/ var / lib / mysql /" --user = mysql # mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 --datadir = / var / lib / mysql --log & # # # CATATAN: Perintah berikutnya ini memungkinkan koneksi jarak jauh dari host APAPUN. BUKAN ide bagus untuk produksi! # echo "perbarui set pengguna Host = '%' di mana Host = 'node1'; hak istimewa siram | mysql mysql # # #Menyetel kata sandi root MySQL ke 'SIOS' # echo "update user set Kata Sandi = PASSWORD ('SIOS') di mana Pengguna = 'root'; hak istimewa siram" | mysql mysql Buat file konfigurasi MySQL. Kami akan menempatkan ini pada disk data (yang nantinya akan direplikasi – /var/lib/mysql/my.cnf). Contoh: # vi /var/lib/mysql/my.cnf [mysqld] datadir = / var / lib / mysql socket = / var / lib / mysql / mysql.sock pid-file = / var / lib / mysql / mysqld.pid pengguna = root port = 3306 # Menonaktifkan tautan simbolik disarankan untuk mencegah berbagai risiko keamanan symbolic-links = 0 [mysqld_safe] log-error = / var / log / mysqld.log pid-file = / var / run / mysqld / mysqld.pid [klien] pengguna = root kata sandi = SIOS Hapus file konfigurasi MySQL asli, yang terletak di / etc, jika ada: # rm /etc/my.cnf Pada "node2":Pada "node2", Anda HANYA perlu menginstal paket MySQL. Langkah-langkah lain tidak diperlukan: [root @ node2 ~] # yum -y install mysql mysql-server Instal dan Konfigurasikan ClusterPada titik ini, kami siap untuk menginstal dan mengkonfigurasi cluster kami. SIOS Protection Suite untuk Linux (alias SPS-Linux) akan digunakan dalam panduan ini sebagai teknologi pengelompokan. Ini menyediakan fitur pengelompokan failover ketersediaan tinggi (LifeKeeper) maupun real-time, replikasi data tingkat blok (DataKeeper) dalam satu solusi terintegrasi. SPS-Linux memungkinkan Anda untuk menyebarkan klaster "SANLess", alias klaster "berbagi apa-apa" yang berarti bahwa node kluster tidak memiliki penyimpanan bersama, seperti halnya dengan Azure VMs. Instal SIOS Protection Suite untuk LinuxLakukan langkah-langkah berikut pada SEMUA 3 VM (node1, node2, witness): Unduh file gambar instalasi SPS-Linux (sps.img) dan dan dapatkan lisensi percobaan atau beli lisensi permanen. Hubungi SIOS untuk informasi lebih lanjut. Anda akan melakukan loopback mount dan menjalankan skrip "setup" di dalam, sebagai root (atau "sudo su -" pertama untuk mendapatkan shell root) Sebagai contoh: # mkdir / tmp / install # mount -o loop sps.img / tmp / install # cd / tmp / install # ./mempersiapkan Selama skrip instalasi, Anda akan diminta untuk menjawab sejumlah pertanyaan. Anda akan menekan Enter di hampir setiap layar untuk menerima nilai default. Perhatikan pengecualian berikut:
Pasang paket Saksi / KuorumPaket Dukungan Quorum / Saksi Server untuk LifeKeeper (steeleye-lkQWK) dikombinasikan dengan proses failover yang ada dari inti LifeKeeper memungkinkan sistem failover terjadi dengan tingkat kepercayaan yang lebih besar dalam situasi di mana kegagalan total jaringan dapat terjadi. Ini secara efektif berarti bahwa failover dapat dilakukan sambil sangat mengurangi risiko "split-brain" situation. Instal rpm Saksi / Quorum pada semua 3 node (node1, node2, witness): # cd / tmp / install / quorum # Rpm -Uvh steeleye-lkQWK-9.0.2-6513.noarch.rpm Pada SEMUA 3 node (node1, node2, witness), edit / etc / default / LifeKeeper, atur NOBCASTPING = 1 On HANYA server Witness ("witness"), edit / etc / default / LifeKeeper, set WITNESS_MODE = off / none Instal kunci LisensiPada semua 3 node, gunakan perintah "lkkeyins" untuk menginstal file lisensi yang Anda dapatkan dari SIOS: # / opt / LifeKeeper / bin / lkkeyins <path_to_file> / <filename> .lic Mulai LifeKeeperPada semua 3 node, gunakan perintah "lkstart" untuk memulai perangkat lunak cluster: # / opt / LifeKeeper / bin / lkstart Atur Izin Pengguna untuk GUI LifeKeeperPada semua 3 node, edit / etc / group dan tambahkan pengguna "tony" (atau nama pengguna apa pun yang Anda tentukan selama pembuatan VM) ke grup "lkadmin" untuk memberikan akses ke GUI LifeKeeper. Secara default, hanya "root" adalah anggota grup, dan kami tidak memiliki kata sandi root: # vi / etc / group lkadmin: x: 1001: root, tony Buka GUI LifeKeeperBuat koneksi VNC ke alamat IP publik dari node1. Berdasarkan konfigurasi VNC dan Inbound Security Rule dari atas, Anda akan terhubung ke <Public_IP>: 2 menggunakan kata sandi VNC yang Anda tentukan sebelumnya. Setelah masuk, buka jendela terminal dan jalankan GUI LifeKeeper menggunakan perintah berikut: # / opt / LifeKeeper / bin / lkGUIapp & Anda akan diminta untuk terhubung ke node cluster pertama Anda ("node1").
|
Linux failover cluster di Microsoft Azure IaaS tanpa penyimpanan bersamaStep-By-Step: Cara Mengonfigurasi Cluster Failover Linux Di Microsoft Azure IaaS Tanpa Penyimpanan Bersama #azure #sanlessDalam panduan langkah demi langkah ini saya akan membawa Anda melalui semua langkah yang diperlukan untuk mengkonfigurasi cluster MySQL 2-node yang sangat tersedia (plus saksi server) di Microsoft Azure IaaS (Infrastruktur sebagai Layanan). Panduan ini mencakup screenshot, perintah shell dan cuplikan kode sebagaimana mestinya. Saya berasumsi bahwa Anda agak akrab dengan Microsoft Azure dan sudah memiliki akun Azure dengan langganan terkait. Jika tidak, Anda dapat mendaftar untuk mendapatkan akun gratis hari ini. Saya juga akan berasumsi bahwa Anda memiliki keterampilan administrasi sistem linux dasar serta memahami konsep pengelompokan failover dasar seperti Virtual IP, dll. Penafian: Azure adalah target yang bergerak cepat. Ini menjadi lebih baik dan lebih baik setiap hari! Dengan demikian, fitur / layar / tombol akan berubah seiring waktu sehingga pengalaman Anda mungkin sedikit berbeda dari apa yang Anda lihat di bawah. Sementara panduan ini akan menunjukkan kepada Anda bagaimana membuat database MySQL sangat tersedia, Anda pasti dapat menyesuaikan informasi dan proses ini untuk melindungi aplikasi atau database lain, seperti SAP, Oracle, PostgreSQL, server file NFS, dan banyak lagi. Ini adalah langkah-langkah tingkat tinggi untuk membuat database MySQL yang sangat tersedia dalam Microsoft Azure IaaS:
IkhtisarArtikel ini akan menginformasikan langkah-langkah untuk mengkonfigurasi Linux Failover Cluster Di Microsoft Azure IaaS Tanpa Penyimpanan Bersama. Ini akan menjelaskan cara membuat kluster dalam satu wilayah Azure. Node cluster (node1, node2 dan server saksi) akan berada dalam Set Ketersediaan (3 Domain Fault yang berbeda dan Pembaruan Domain), terima kasih kepada Azure Resource Manager (ARM) baru. Kami akan membuat semua sumber daya menggunakan Manajer Sumber Daya Azure baru. Konfigurasi akan terlihat seperti i
Buat Grup Sumber DayaPertama, buat Grup Sumber Daya. Grup sumber daya Anda akan berakhir dengan memuat semua berbagai objek yang terkait dengan penyebaran klaster kami: mesin virtual, jaringan virtual, akun penyimpanan, dll. Di sini kita akan memanggil "cluster-sumber" sumber daya yang baru kita buat. Buat Jaringan Virtual (VNet)Membuat Jaringan Virtual akan menjadi langkah Anda berikutnya dalam menghubungkan Failover Cluster Linux Di Microsoft Azure IaaS Tanpa Penyimpanan Bersama. Jaringan Virtual adalah jaringan yang terisolasi dalam awan Azure yang didedikasikan untuk Anda. Anda memiliki kontrol penuh atas hal-hal seperti blok alamat IP dan subnet, perutean, kebijakan keamanan (yaitu firewall), pengaturan DNS, dan banyak lagi. Anda akan meluncurkan mesin virtual Azure Iaas (VMs) ke dalam Jaringan Virtual Anda. Buat Akun PenyimpananSebelum Anda menyediakan Mesin Virtual apa pun, Anda harus membuat Akun Penyimpanan tempat mereka akan disimpan. Buat Mesin Virtual di dalam Set KetersediaanKami akan menyediakan 3 Mesin Virtual dalam panduan ini. Dua VM pertama (saya akan menyebutnya "node1" dan "node2") akan berfungsi sebagai node klaster dengan kemampuan untuk membawa database MySQL dan sumber daya terkait secara online. VM ke-3 akan bertindak sebagai server saksi kluster untuk perlindungan tambahan terhadap perpecahan otak. Untuk memastikan ketersediaan maksimum, semua 3 VM akan ditambahkan ke Kumpulan Ketersediaan yang sama, memastikan bahwa mereka akan berakhir di Domain Fault yang berbeda dan Perbarui Domain. Buat "node1" VMBuat VM pertama Anda ("node1"). Dalam panduan ini kita akan menggunakan CentOS 6 Buat "node2" dan "saksi" VMsUlangi langkah-langkah di atas dua kali untuk membuat dua VM lagi. Saya membuat ukuran "A3 Standard" ukuran VM lain yang disebut "node2" dan ukuran "A1 Standard" VM yang disebut "saksi". Satu-satunya perbedaan di sini adalah Anda akan MENAMBAHKAN VM ini ke Kumpulan Ketersediaan ("ketersediaan-gugus-gugus") yang baru saja kami bu Tetapkan Alamat IP Statis VMVMs akan diatur dengan alamat IP berikut:
Ulangi langkah ini untuk setiap VM. Pilih VM Anda dan edit Antarmuka Jaringan P Tambahkan Data Disk ke cluster nodeSelanjutnya, kita perlu menambahkan disk ekstra ke node cluster kami ("node1" dan "node2"). Disk ini akan menyimpan database MySQL kami dan kemudian direplikasi antara node. Catatan: Anda TIDAK perlu menambahkan disk ekstra ke node “saksi”. Hanya "node1" dan "node2". Edit VM Anda, pilih Disk dan kemudian pasang disk baru: P Buat Aturan Keamanan Masuk untuk memungkinkan akses VNCJika VM Anda adalah bagian dari Network Security Group (NSG), yang secara default kemungkinannya adalah kecuali Anda menonaktifkannya selama pembuatan VM, satu-satunya port yang terbuka di "Azure firewall" adalah SSH (port 22). Nanti di panduan ini, saya akan menggunakan VNC untuk mengakses desktop "node1" dan mengonfigurasi gugus menggunakan GUI. Buat Aturan Keamanan Masuk untuk membuka akses VNC. Dalam panduan ini port 5902 digunakan. Sesuaikan ini sesuai berdasarkan konfigurasi VNC Anda. Mesin Virtual -> (pilih node1) -> Antarmuka jaringan -> (pilih NIC) -> Grup keamanan jaringan -> (pilih NSG) -> Aturan keamanan masuk -> Tambah Konfigurasi OS LinuxDi sinilah kita akan meninggalkan Portal Azure untuk sementara dan mendapatkan tangan kita kotor pada baris perintah, yang sebagai administrator Linux Anda harus digunakan sekarang. Anda tidak diberikan kata sandi root ke VM Linux Anda di Azure, jadi setelah Anda login sebagai pengguna yang ditentukan selama pembuatan VM, gunakan perintah "sudo" untuk mendapatkan hak akses root: $ sudo su - Edit / etc / hostsKecuali Anda sudah memiliki pengaturan server DNS, Anda akan ingin membuat entri file host pada semua 3 server sehingga mereka dapat menyelesaikan satu sama lain dengan nama Tambahkan baris berikut ke akhir file / etc / hosts Anda: 10.0.0.4 simpul1 10.0.0.5 node2 10.0.0.6 saksi 10.0.0.99 mysql-vip Nonaktifkan SELinuxEdit / etc / sysconfig / linux dan atur "SELINUX = dinonaktifkan": # vi / etc / sysconfig / selinux # File ini mengontrol status SELinux pada sistem. # SELINUX = dapat mengambil salah satu dari tiga nilai ini: # Enforcing - Kebijakan keamanan SELinux diberlakukan. # Permissive - SELinux mencetak peringatan daripada menegakkan. # Disabled - Tidak ada kebijakan SELinux yang dimuat. SELINUX = dinonaktifkan # SELINUXTYPE = dapat mengambil salah satu dari dua nilai ini: # Targeted - Proses yang ditargetkan terlindungi, # Mls - Perlindungan Multi Level Security. SELINUXTYPE = ditargetkan Konfigurasi iptables agar mengelompokkan IP Virtual akan berfungsiPENTING: Untuk mendapatkan konektivitas ke kluster Virtual IP untuk bekerja, dan juga memantau sumber daya IP, beberapa aturan iptabel perlu disetel. Catatan: 10.0.0.99 adalah IP Virtual yang akan kami gunakan di kluster kami, dan 3306 adalah port default yang digunakan MySQL saya. Pada node1 (10.0.0.4), jalankan perintah berikut: # iptables --fush # iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination 10.0.0.99:3306 # iptables -t nat -A POSTROUTING -p icmp -s 10.0.0.99 -j SNAT --ke-sumber 10.0.0.4 # layanan iptables simpan # chkconfig iptables aktif Pada Node2 (10.0.0.5), jalankan perintah berikut: # iptables --fush # iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination 10.0.0.99:3306 # iptables -t nat -A POSTROUTING -p icmp -s 10.0.0.99 -j SNAT --ke-sumber 10.0.0.5 # layanan iptables simpan # chkconfig iptables aktif Instal dan Konfigurasikan VNC (dan paket terkait)Untuk mengakses GUI server linux kami, untuk kemudian mengkonfigurasi kluster kami, instal server VNC pada node cluster Anda. Dalam pengaturan saya, saya hanya melakukan ini pada "node1" # yum menginstal tigervnc-server xterm # vncpasswd # vi / etc / sysconfig / vncservers VNCSERVERS = "2: root" VNCSERVERARGS [2] = "- geometri 1024x768" # service vncserver mulai # chkconfig vncserver aktif Uji konektivitas dengan membuka klien VNC di laptop / desktop Anda, dan hubungkan ke Public IP dari node cluster Anda Reboot Cluster NodesReboot node kluster Anda sehingga SELinux dinonaktifkan, dan disk kedua yang sebelumnya Anda tambahkan terdeteksi. Hanya "node1" dan "node2" perlu di-reboot. Partisi dan Format disk “data”Pada Langkah 6 dari panduan ini (“Tambah Data Disk ke cluster node”) kami melakukan itu… .menambahkan disk ekstra ke setiap node cluster untuk menyimpan data aplikasi yang akan kami lindungi. Dalam hal ini kebetulan database MySQL. Di Azure IaaS, Linux Virtual Machines menggunakan pengaturan berikut untuk disk:
Disk yang kami tambahkan pada Langkah 6 dari panduan ini akan muncul sebagai / dev / sdc. Anda dapat menjalankan perintah "fdisk-l" untuk memverifikasi. Anda akan melihat bahwa / dev / sda (OS) dan / dev / sdb (sementara) sudah memiliki partisi disk dan sedang digunakan. # fdisk-l Disk / dev / sdb: 306.0 GB, 306016419840 byte 255 kepala, 63 sektor / track, 37204 silinder Unit = silinder 16065 * 512 = 8225280 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte I / O size (minimum / optimal): 512 bytes / 512 bytes Pengenal disk: 0xd3920649 Perangkat Boot Mulai Akhir Blok Sistem Id / dev / sdb1 * 1 37205 298842112 83 Linux Disk / dev / sdc: 10.7 GB, 10737418240 byte 255 kepala, 63 sektor / track, 1305 silinder Unit = silinder 16065 * 512 = 8225280 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte I / O size (minimum / optimal): 512 bytes / 512 bytes Pengenal disk: 0x00000000 Disk / dev / sda: 32,2 GB, 32212254720 byte 255 kepala, 63 sektor / track, 3916 silinder Unit = silinder 16065 * 512 = 8225280 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte I / O size (minimum / optimal): 512 bytes / 512 bytes Pengidentifikasi disk: 0x000c23d3 Perangkat Boot Mulai Akhir Blok Sistem Id / dev / sda1 * 1 3789 30432256 83 Linux / dev / sda2 3789 3917 1024000 82 Linux swap / Solaris Di sini saya akan membuat partisi (/ dev / sdc1), memformatnya, dan memasangnya di lokasi default untuk MySQL, yang / var / lib / mysql. Lakukan langkah-langkah berikut pada KEDUA "node1" dan "node2": # fdisk / dev / sdc Perintah (m untuk bantuan): n Komando aksi e diperpanjang p partisi primer (1-4) p Nomor partisi (1-4): 1 Silinder pertama (1-1305, default 1): <enter> Menggunakan nilai default 1 Silinder, silinder atau ukuran terakhir {K, M, G} (1-1305, default 1305): <enter> Menggunakan nilai default 1305 Perintah (m untuk bantuan): w Tabel partisi telah diubah! Memanggil ioctl () untuk membaca kembali tabel partisi. Sinkronisasi disk. [root @ node1 ~] # # mkfs.ext4 / dev / sdc1 # mkdir / var / lib / mysql Pada node1, mount filesystem: # mount / dev / sdc1 / var / lib / mysql Instal dan Konfigurasi MySQLSelanjutnya, instal instal paket-paket MySQL, inisialisasi database contoh, dan atur kata sandi “root” untuk MySQL. Pada “node1”:# yum -y install mysql mysql-server # / usr / bin / mysql_install_db --datadir = "/ var / lib / mysql /" --user = mysql # mysqld_safe --user = root --socket = / var / lib / mysql / mysql.sock --port = 3306 --datadir = / var / lib / mysql --log & # # # CATATAN: Perintah berikutnya ini memungkinkan koneksi jarak jauh dari host APAPUN. BUKAN ide bagus untuk produksi! # echo "perbarui set pengguna Host = '%' di mana Host = 'node1'; hak istimewa siram | mysql mysql # # #Menyetel kata sandi root MySQL ke 'SIOS' # echo "update user set Kata Sandi = PASSWORD ('SIOS') di mana Pengguna = 'root'; hak istimewa siram" | mysql mysql Buat file konfigurasi MySQL. Kami akan menempatkan ini pada disk data (yang nantinya akan direplikasi – /var/lib/mysql/my.cnf). Contoh: # vi /var/lib/mysql/my.cnf [mysqld] datadir = / var / lib / mysql socket = / var / lib / mysql / mysql.sock pid-file = / var / lib / mysql / mysqld.pid pengguna = root port = 3306 # Menonaktifkan tautan simbolik disarankan untuk mencegah berbagai risiko keamanan symbolic-links = 0 [mysqld_safe] log-error = / var / log / mysqld.log pid-file = / var / run / mysqld / mysqld.pid [klien] pengguna = root kata sandi = SIOS Hapus file konfigurasi MySQL asli, yang terletak di / etc, jika ada: # rm /etc/my.cnf Pada "node2":Pada "node2", Anda HANYA perlu menginstal paket MySQL. Langkah-langkah lain tidak diperlukan: [root @ node2 ~] # yum -y install mysql mysql-server Instal dan Konfigurasikan ClusterPada titik ini, kami siap untuk menginstal dan mengkonfigurasi cluster kami. SIOS Protection Suite untuk Linux (alias SPS-Linux) akan digunakan dalam panduan ini sebagai teknologi pengelompokan. Ini menyediakan fitur pengelompokan failover ketersediaan tinggi (LifeKeeper) maupun real-time, replikasi data tingkat blok (DataKeeper) dalam satu solusi terintegrasi. SPS-Linux memungkinkan Anda untuk menyebarkan klaster "SANLess", alias klaster "berbagi apa-apa" yang berarti bahwa node kluster tidak memiliki penyimpanan bersama, seperti halnya dengan Azure VMs. Instal SIOS Protection Suite untuk LinuxLakukan langkah-langkah berikut pada SEMUA 3 VM (node1, node2, witness): Unduh file gambar instalasi SPS-Linux (sps.img) dan dan dapatkan lisensi percobaan atau beli lisensi permanen. Hubungi SIOS untuk informasi lebih lanjut. Anda akan melakukan loopback mount dan menjalankan skrip "setup" di dalam, sebagai root (atau "sudo su -" pertama untuk mendapatkan shell root) Sebagai contoh: # mkdir / tmp / install # mount -o loop sps.img / tmp / install # cd / tmp / install # ./mempersiapkan Selama skrip instalasi, Anda akan diminta untuk menjawab sejumlah pertanyaan. Anda akan menekan Enter di hampir setiap layar untuk menerima nilai default. Perhatikan pengecualian berikut:
Pasang paket Saksi / KuorumPaket Dukungan Quorum / Saksi Server untuk LifeKeeper (steeleye-lkQWK) dikombinasikan dengan proses failover yang ada dari inti LifeKeeper memungkinkan sistem failover terjadi dengan tingkat kepercayaan yang lebih besar dalam situasi di mana kegagalan total jaringan dapat terjadi. Ini secara efektif berarti bahwa failover dapat dilakukan sambil sangat mengurangi risiko "split-brain" situation. Instal rpm Saksi / Quorum pada semua 3 node (node1, node2, witness): # cd / tmp / install / quorum # Rpm -Uvh steeleye-lkQWK-9.0.2-6513.noarch.rpm Pada SEMUA 3 node (node1, node2, witness), edit / etc / default / LifeKeeper, atur NOBCASTPING = 1 On HANYA server Witness ("witness"), edit / etc / default / LifeKeeper, set WITNESS_MODE = off / none Instal kunci LisensiPada semua 3 node, gunakan perintah "lkkeyins" untuk menginstal file lisensi yang Anda dapatkan dari SIOS: # / opt / LifeKeeper / bin / lkkeyins <path_to_file> / <filename> .lic Mulai LifeKeeperPada semua 3 node, gunakan perintah "lkstart" untuk memulai perangkat lunak cluster: # / opt / LifeKeeper / bin / lkstart Atur Izin Pengguna untuk GUI LifeKeeperPada semua 3 node, edit / etc / group dan tambahkan pengguna "tony" (atau nama pengguna apa pun yang Anda tentukan selama pembuatan VM) ke grup "lkadmin" untuk memberikan akses ke GUI LifeKeeper. Secara default, hanya "root" adalah anggota grup, dan kami tidak memiliki kata sandi root: # vi / etc / group lkadmin: x: 1001: root, tony Buka GUI LifeKeeperBuat koneksi VNC ke alamat IP publik dari node1. Berdasarkan konfigurasi VNC dan Inbound Security Rule dari atas, Anda akan terhubung ke <Public_IP>: 2 menggunakan kata sandi VNC yang Anda tentukan sebelumnya. Setelah masuk, buka jendela terminal dan jalankan GUI LifeKeeper menggunakan perintah berikut: # / opt / LifeKeeper / bin / lkGUIapp & Anda akan diminta untuk terhubung ke node cluster pertama Anda ("node1").
Uji Konektivitas Cluster
|