Mengonfigurasi SQL Server di Google Cloud Platform menggunakan Cloud Volumes Service


Tutorial ini memberikan ringkasan tentang cara mengonfigurasi infrastruktur Google Cloud yang sangat tangguh lingkungan untuk SQL Server yang diinstal di penyimpanan fileshare Server (SMB) menggunakan NetApp Cloud Volumes Service (CVS) untuk Google Cloud.

Grup ketersediaan Selalu Aktif Microsoft SQL Server (AG) memungkinkan Anda mereplikasi database di beberapa instance SQL Server Enterprise. Instance Selalu Aktif SQL Server tradisional biasanya memerlukan setiap node untuk mempertahankan salinan data, yang dapat dengan cepat menjadi mahal saat database berkembang. Misalnya, dalam deployment Selalu Aktif SQL Server tradisional, jika database berukuran 10 TB, setiap replika harus memiliki penyimpanan minimal 10 TB disediakan. Salah satu manfaat memiliki Windows Server Failover Cluster (WSFC) di-deploy untuk SQL Server adalah Anda hanya perlu memiliki satu salinan data, yang dibagikan di antara node cluster. Oleh karena itu, menjalankan SQL Server Always On dalam instance cluster failover (FCI) pada WSFC dapat langsung mewujudkan penghematan biaya dengan mengurangi jumlah penyimpanan yang diperlukan.

NetApp Cloud Volumes Service adalah solusi penyimpanan cloud untuk menjalankan workload SQL Server berperforma tinggi yang dikombinasikan dengan instance Compute Engine. Database SQL Server melalui SMB di Cloud Volumes Service memberikan tingkat ketahanan yang sangat tinggi antara instance Google Cloud dan layanan penyimpanan. SMB Transparent Failover memungkinkan operasi pemeliharaan di Cloud Volumes Service tanpa mengganggu konektivitas ke aplikasi server yang menyimpan dan mengakses data di volume SMB. Untuk mendukung Failover Transparan SMB, Cloud Volumes Service mendukung opsi berbagi ketersediaan berkelanjutan (CA) SMB untuk digunakan dengan beban kerja SQL Server. Layanan ini memberikan peningkatan performa, skalabilitas, dan manfaat biaya untuk instance tunggal, instance cluster failover Selalu Aktif (AOFC), dan deployment grup ketersediaan Selalu Aktif.

Halaman ini ditujukan untuk NetApp Cloud Volumes Service dan database SQL Server administrator yang bertanggung jawab untuk men-deploy Microsoft SQL Server di Google Cloud. Ini dengan asumsi hal berikut:

  • Anda memahami berbagai komponen solusi
  • Anda telah men-deploy Active Directory di Google Cloud

Tujuan

Tutorial ini bertujuan untuk mencapai tujuan berikut:

  • Membuat volume Layanan Cloud Volumes untuk SQL Server
  • Men-deploy cluster failover Always On melalui SMB di Layanan Cloud Volumes

Biaya

Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:

Gunakan kalkulator harga untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan.

Sebelum memulai

Untuk tutorial ini, Anda memerlukan proyek Google Cloud. Anda dapat membuat yang baru, atau pilih project yang sudah Anda buat:

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  2. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  3. Domain Active Directory dengan minimal satu pengontrol domain. Anda dapat membuat domain Active Directory dengan menggunakan Microsoft AD Terkelola. Atau, Anda dapat men-deploy lingkungan Active Directory kustom di Compute Engine dan menyiapkan zona penerusan DNS pribadi yang meneruskan kueri DNS ke pengontrol domain Anda.
  4. Pengguna Active Directory yang memiliki izin untuk menggabungkan komputer ke domain dan dapat login menggunakan RDP. Jika menggunakan Microsoft AD Terkelola, Anda dapat menggunakan pengguna setupadmin.
  5. Project Google Cloud dan VPC dengan konektivitas ke pengontrol domain Active Directory Anda.
  6. Pastikan NetApp Cloud Volumes API sudah diaktifkan untuk project Google Cloud Anda.
  7. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

Menyiapkan project dan jaringan

Menyiapkan project Google Cloud dan Virtual Private Cloud (VPC) untuk deployment SQL Server Grup ketersediaan Selalu Aktif, lakukan tindakan berikut:

  1. Di Konsol Google Cloud, buka Cloud Shell dengan mengklik Mengaktifkan Cloud Shell Mengaktifkan Cloud Shell. tombol.

    Buka konsol Google Cloud.

  2. Lakukan inisialisasi variabel berikut:

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    

    Ganti kode berikut:

    • VPC_NAME: nama VPC Anda
    • SUBNET_NAME: nama subnet Anda
  3. Tetapkan project ID default Anda:

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project Google Cloud Anda.

  4. Tetapkan region default Anda:

    gcloud config set compute/region REGION
    

    Ganti REGION dengan ID region tempat Anda ingin men-deploy.

  5. Tetapkan zona default Anda:

    gcloud config set compute/zone ZONE
    

    Ganti ZONE dengan ID zona tempat Anda ingin men-deploy.

Membuat SMB di Cloud Volumes Service untuk SQL Server

Untuk membuat volume Layanan Cloud Volumes, Anda harus membuat kebijakan Active Directory, akses layanan pribadi, kumpulan penyimpanan, dan volume penyimpanan.

  1. Untuk membuat Akses Layanan Pribadi baru, lakukan hal berikut:

    1. Di konsol Google Cloud, buka halaman VPC network.

      Buka jaringan VPC

    2. Klik nama jaringan VPC yang akan Anda gunakan.

    3. Klik tab Private Services Access, lalu klik Allocate IP Range.

      1. Masukkan nama untuk rentang IP Internal.
      2. Pilih Otomatis, dan masukkan nilai 24 untuk Panjang awalan.
      3. Klik tombol Allocate.
    4. Klik tab Private Connections To Services, lalu lakukan hal berikut:

      1. Klik tombol Create Connection.
      2. Pilih rentang IP yang dialokasikan sebelumnya untuk drop-down Alokasi yang ditetapkan.
      3. Klik tombol Connect.
  2. Untuk membuat kebijakan Active Directory baru, lakukan tindakan berikut:

    1. Di konsol Google Cloud, buka halaman NetApp Volumes.

      Buka NetApp Volumes

    2. Di panel Navigation, klik Active Directory policies pada bagian Policies.

    3. Klik tombol Create.

    4. Tentukan nama untuk kebijakan Active Directory.

    5. Pada Region, pilih region yang tersedia terdekat dengan tempat instance SQL Server akan dihosting.

    6. Di bagian Active Directory connection details, berikan informasi berikut:

      1. Nama domain
      2. Alamat server DNS Active Directory
      3. Nama situs Active Directory
      4. Nama unit organisasi
      5. Awalan nama NetBIOS
    7. Di bagian Active Directory credentials, berikan kredensial untuk pengguna yang diizinkan untuk menggabungkan komputer ke domain yang ditentukan.

    8. Di bagian setelan SMB, berikan Operator Cadangan dan Pengguna hak istimewa keamanan, jika berlaku.

    9. Klik Create untuk menyelesaikan proses pembuatan kebijakan Active Directory baru.

  3. Untuk membuat penyimpanan pool baru, lakukan tindakan berikut:

    1. Di panel Navigasi, klik Storage pool pada bagian Storage.
    2. Klik tombol Create.
    3. Masukkan nama untuk penyimpanan gabungan.
    4. Di bagian Location, pilih region yang tersedia paling dekat dengan tempat instance SQL Server akan dihosting.
    5. Pilih Tingkat Layanan yang akan memenuhi performa penyimpanan yang diharapkan.
    6. Masukkan Kapasitas untuk penyimpanan gabungan. Kapasitas gabungan penyimpanan menentukan total kapasitas penyimpanan yang dapat dialokasikan untuk semua volume dalam gabungan.
    7. Dalam daftar Network, pilih VPC tempat instance SQL Server akan dihosting, sebagai berikut:
      1. Klik tombol Set Up Connection.
      2. Pilih rentang alamat IP yang dicadangkan di langkah sebelumnya dan klik Lanjutkan.
      3. Klik tombol Create Connection.
    8. Di bagian Kebijakan Active Directory, pilih Tetapkan kebijakan Active Directory ke kumpulan penyimpanan, lalu pilih kebijakan Active Directory yang dibuat pada langkah sebelumnya.
    9. Klik tombol Create untuk menyelesaikan proses pembuatan penyimpanan gabungan baru.
  4. Untuk membuat volume penyimpanan baru, lakukan langkah berikut:

    1. Di panel Navigation, klik Volumes pada bagian Storage.
    2. Klik tombol Create.
    3. Tentukan nama untuk volume penyimpanan.
    4. Di bagian Detail penyimpanan gabungan, klik Pilih penyimpanan gabungan untuk memilih penyimpanan gabungan yang dibuat pada langkah sebelumnya.
    5. Di bagian Detail volume, berikan informasi berikut:
      1. Nama yang dibagikan
      2. Kapasitas volume
    6. Di bagian Large kapasitas configuration, pilih SMB protocol.
    7. Di bagian Configuration for selected protocol(s), pilih Enable CA share support for SQL Server, FSLogix.
    8. Klik tombol Create untuk menyelesaikan proses pembuatan volume penyimpanan baru.

Membuat aturan firewall

Untuk mengizinkan klien terhubung ke SQL Server, izinkan komunikasi antara Windows Server Failover Cluster (WSFC) dan mengaktifkan load balancer melakukan health check, Anda harus membuat beberapa aturan firewall. Untuk menyederhanakan pembuatan aturan firewall, Anda dapat menggunakan tag jaringan:

  • WSFC yang Anda gunakan dianotasi dengan tag wsfc-node.
  • Semua server, termasuk saksi, dianotasi dengan tag wsfc.

Untuk membuat aturan firewall yang menggunakan tag jaringan ini, ikuti langkah-langkah berikut:

  1. Kembali ke sesi Cloud Shell yang ada.
  2. Buat aturan firewall untuk node WSFC.

    SUBNET_CIDR=$(gcloud compute networks subnets describe $SUBNET_NAME --format=value\('ipCidrRange'\))
    
    gcloud compute firewall-rules create allow-all-between-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp,udp,icmp \
      --enable-logging \
      --source-tags=wsfc \
      --target-tags=wsfc \
      --network=$VPC_NAME \
      --priority 10000
    
    gcloud compute firewall-rules create allow-sql-to-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp:1433 \
      --enable-logging \
      --source-ranges=$SUBNET_CIDR \
      --target-tags=wsfc-node \
      --network=$VPC_NAME \
      --priority 10000
    
  3. Buat aturan firewall yang mengizinkan health check dari rentang IP penguji Google Cloud:

    gcloud compute firewall-rules create allow-health-check-to-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp \
      --source-ranges=130.211.0.0/22,35.191.0.0/16 \
      --target-tags=wsfc-node \
      --network=$VPC_NAME \
      --priority 10000
    

Membuat instance VM

Sekarang Anda akan men-deploy tiga instance VM untuk cluster failover.

Node-1 akan menghosting replika utama database SQL Server dan node-2 akan menghosting replika sekunder. Kedua instance VM tersebut harus:

  • ditempatkan di region yang sama sehingga dapat diakses Load Balancer Jaringan passthrough internal
  • menginstal WSFC dan SQL Server 2022 menggunakan image premium SQL Server

  • mengaktifkan dukungan WSFC Compute Engine

Untuk memberikan pemungutan suara yang mengikat dan mencapai kuorum untuk skenario failover, Anda akan men-deploy instance VM ketiga node-3 yang berfungsi sebagai saksi berbagi file.

  1. Kembali ke sesi Cloud Shell yang ada.
  2. Buat skrip untuk node WSFC. Skrip ini menginstal fitur Windows yang diperlukan serta membuat aturan firewall untuk WSFC dan SQL Server:

    cat << "EOF" > specialize-node.ps1
    
    $ErrorActionPreference = "stop"
    
    # Install required Windows features
    Install-WindowsFeature Failover-Clustering -IncludeManagementTools
    Install-WindowsFeature RSAT-AD-PowerShell
    
    # Open firewall for WSFC
    netsh advfirewall firewall add rule name="Allow SQL Server health check" dir=in action=allow protocol=TCP localport=59997
    
    # Open firewall for SQL Server
    netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433
    
    # Open firewall for SQL Server replication
    netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022
    
    EOF
    
  3. Buat instance VM. Pada dua VM yang berfungsi sebagai node WSFC, pasang disk data tambahan dan aktifkan Cluster Failover Windows Server dengan menetapkan kunci metadata enable-wsfc ke true:

    REGION=$(gcloud config get-value compute/region)
    PD_SIZE=200
    MACHINE_TYPE=n2-standard-8
    
    gcloud compute instances create node-1 \
      --zone $REGION-a \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-1" \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create node-2 \
      --zone $REGION-b \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-2" \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create "witness" \
      --zone $REGION-c \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family=windows-2022 \
      --image-project=windows-cloud \
      --tags wsfc \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --metadata sysprep-specialize-script-ps1="add-windowsfeature FS-FileServer"
    
  4. Untuk menggabungkan 3 instance VM ke Active Directory, lakukan hal berikut untuk masing-masing dari 3 instance VM:

    1. Pantau proses inisialisasi VM dengan melihat output port serialnya:

      gcloud compute instances tail-serial-port-output NAME
      

      Ganti NAME dengan nama instance VM.

      Tunggu beberapa menit hingga Anda melihat output Instance setup finished, lalu tekan Ctrl+C. Pada tahap ini, instance VM siap digunakan.

    2. Buat nama pengguna dan sandi untuk instance VM

    3. Hubungkan ke VM menggunakan Desktop Jarak Jauh dan login menggunakan nama pengguna dan sandi yang dibuat di langkah sebelumnya.

    4. Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).

    5. Konfirmasi dialog elevasi dengan mengklik Ya.

    6. Gabungkan instance VM ke domain Active Directory Anda, lalu mulai ulang:

      Add-Computer -Domain DOMAIN -Restart
      

      Ganti DOMAIN dengan nama DNS domain Active Directory Anda.

      Tunggu hingga instance VM dimulai ulang.

Menetapkan izin penyimpanan

Untuk menetapkan izin ke penyimpanan volume cloud, selesaikan langkah-langkah berikut:

  1. Dari konsol Google Cloud, pilih Cloud Volumes dan pilih volume yang baru saja dibuat.

    Volume Cloud

  2. Hubungkan ke node-1 menggunakan Desktop Jarak Jauh. Login dengan akun pengguna domain Anda.

  3. Buka Windows Explorer, lalu klik kanan This PC.

  4. Pilih Peta drive jaringan.

  5. Tempel jalur SMB yang disalin ke dalam folder.

    Volume Cloud

  6. Saat login, nonaktifkan opsi Hubungkan kembali.

  7. Klik Selesai.

  8. Klik kanan drive jaringan yang dipetakan, lalu pilih Properties.

    Volume Cloud

  9. Dari tab Keamanan, klik Edit.

  10. Menghapus Semua Orang dan menambahkan penginstal SQL Server dan akun layanan SQL Server dengan izin kontrol penuh.

    Volume Cloud

  11. Konfirmasi dialog elevasi dengan mengklik Ya.

Mencadangkan alamat IP cluster

Reservasi dua alamat IP statis di VPC Anda, satu untuk alamat IP cluster WSFC dan satu lagi untuk load balancer internal.

  1. Cadangkan IP statis untuk load balancer internal dan ambil alamatnya dalam variabel lingkungan baru bernama LOADBALANCER_ADDRESS:

    gcloud compute addresses create wsfc \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --subnet $SUBNET_NAME
    
    LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\)) && \
    echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
    

    Catat alamat IP, Anda akan membutuhkannya nanti.

  2. Cadangkan alamat IP statis lainnya yang Anda gunakan sebagai IP cluster:

    gcloud compute addresses create wsfc-cluster \
      --subnet $SUBNET_NAME \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) && \
    CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\)) && \
    echo "Cluster IP: $CLUSTER_ADDRESS"
    

    Catat alamat IP-nya karena Anda akan memerlukannya nanti.

Project dan VPC Anda kini siap untuk men-deploy WSFC dan SQL Server.

Buat berbagi file saksi

Untuk menyiapkan witness agar berfungsi sebagai saksi berbagi file, buat fitur berbagi file dan beri diri Anda serta dua node WSFC akses ke berbagi file:

  1. Hubungkan ke witness menggunakan Desktop Jarak Jauh. Login dengan akun pengguna domain Anda.
  2. Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
  3. Konfirmasi dialog elevasi dengan mengklik Ya.
  4. Buat folder saksi dan bagikan foldernya:

    New-Item "C:\QWitness" –type directory
    
    icacls C:\QWitness\ /grant 'node-1$:(OI)(CI)(M)'
    icacls C:\QWitness\ /grant 'node-2$:(OI)(CI)(M)'
    
    New-SmbShare `
      -Name QWitness `
      -Path "C:\QWitness" `
      -Description "SQL File Share Witness" `
      -FullAccess  $env:username,node-1$,node-2$
    

Men-deploy cluster failover

Anda sekarang akan menggunakan instance VM untuk men-deploy WSFC dan SQL Server.

Men-deploy WSFC

Sekarang Anda siap membuat cluster failover:

  1. Hubungkan ke node-1 menggunakan Desktop Jarak Jauh. Login dengan akun pengguna domain Anda.
  2. Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
  3. Konfirmasi dialog elevasi dengan mengklik Ya.
  4. Buat cluster baru:

    New-Cluster `
      -Name windows-fci `
      -Node node-1,node-2 `
      -NoStorage `
      -StaticAddress CLUSTER_ADDRESS
    

    Ganti CLUSTER_ADDRESS dengan alamat IP cluster yang Anda buat sebelumnya.

  5. Kembali ke sesi PowerShell di witness, lalu berikan izin mengakses fitur berbagi file kepada objek komputer virtual cluster tersebut:

    icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)'
    Grant-SmbShareAccess `
      -Name QWitness `
      -AccountName 'windows-fci$' `
      -AccessRight Full `
      -Force
    
  6. Kembali ke sesi PowerShell di node-1, lalu konfigurasikan cluster untuk menggunakan fitur berbagi file di witness sebagai kuorum cluster:

    Set-ClusterQuorum -FileShareWitness \\witness\QWitness
    
  7. Pastikan bahwa cluster berhasil dibuat:

    Test-Cluster
    

    Anda mungkin melihat beberapa peringatan yang dapat diabaikan dengan aman:

    WARNING: System Configuration - Validate All Drivers Signed: The test reported some warnings..
    WARNING: Network - Validate Network Communication: The test reported some warnings..
    WARNING:
    Test Result:
    HadUnselectedTests, ClusterConditionallyApproved
    Testing has completed for the tests you selected. You should review the warnings in the Report.  A cluster solution is
    supported by Microsoft only if you run all cluster validation tests, and all tests succeed (with or without warnings).
    

    Anda juga dapat meluncurkan snap-in MMC Pengelola Cluster Failover untuk meninjau kondisi cluster dengan menjalankan cluadmin.msc.

  8. Jika Anda menggunakan IKLAN Terkelola, tambahkan akun komputer yang digunakan oleh WSFC ke Cloud Service Domain Join Accounts agar dapat bergabung ke instance VM ke domain:

    Add-ADGroupMember `
      -Identity "Cloud Service Domain Join Accounts" `
      -Members windows-fci$
    

Menghapus penginstalan SQL Server default

Anda sekarang akan menghapus instalasi SQL Server {i>default<i} dari kedua {i>node<i} dan mengganti dengan konfigurasi FCI baru.

Untuk masing-masing dari dua node WSFC, node-1 dan node-2, lakukan langkah-langkah berikut:

  1. Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
  2. Konfirmasi dialog elevasi dengan mengklik Ya.
  3. Hapus instance SQL Server default:

    C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
    
  4. Hapus Microsoft OLE Driver:

    Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
    
  5. Hapus Driver Microsoft ODBC:

    Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
    
  6. Mulai ulang komputer:

    Restart-Computer
    
  7. Tunggu hingga instance VM dimulai ulang.

Menginstal FCI SQL Server

Sebelum menginstal konfigurasi FCI baru, pastikan bahwa node-1 adalah node aktif di cluster:

  1. Menghubungkan kembali ke node-1 menggunakan Desktop Jarak Jauh dan login menggunakan domain Anda.
  2. Klik kanan tombol Mulai (atau tekan Win+X), lalu pilih Jalankan.
  3. Masukkan cluadmin.msc lalu pilih OK.
  4. Di panel jendela sebelah kiri, buka Failover Cluster Manager > windows-fci, lalu lakukan langkah berikut:

    1. Pastikan bahwa server host saat ini disetel ke node-1.

    2. Jika server host saat ini disetel ke node-2, klik kanan windows-fci di panel jendela kiri, lalu pilih Tindakan lainnya > Pindahkan resource cluster inti> Pilih node… > node-1 lalu klik OK.

Anda akan membuat penginstalan cluster failover SQL Server baru pada node-1:

  1. Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
  2. Konfirmasi dialog elevasi dengan mengklik Ya.

  3. Mulai penyiapan SQL Server:

    & c:\sql_server_install\setup.exe
    
  4. Di menu di sebelah kiri, pilih Penginstalan.

  5. Pilih New SQL Server failover cluster installation.

  6. Di halaman Edition, masukkan kunci produk, pilih jenis lisensi software, lalu klik Next.

  7. Di halaman Persyaratan Lisensi, tinjau persyaratannya, lalu klik Berikutnya jika Anda menyetujuinya.

  8. Di halaman Microsoft Update, klik Berikutnya untuk memulai penginstalan.

  9. Di halaman Aturan Penginstalan Cluster Failover, Anda akan melihat Peringatan Peringatan verifikasi cluster MSCS dan firewall Windows. Anda dapat mengabaikan peringatan ini, lalu mengklik Berikutnya.

  10. Pada halaman Feature Selection, pilih Database Engine Services lalu klik Next.

  11. Di halaman Instance Configuration, masukkan sql sebagai nama jaringan, lalu klik Next.

  12. Di halaman Grup Resource Cluster, Anda dapat mengabaikan peringatan kualifikasi dan mengklik Berikutnya.

  13. Di halaman Pemilihan Disk Cluster, klik Berikutnya.

  14. Di halaman Cluster Network Configuration, konfigurasikan setelan berikut, lalu klik Next:

    • DHCP: kosong
    • Alamat IP: masukkan alamat IP load balancer internal
  15. Di halaman Konfigurasi server, konfigurasikan setelan berikut untuk SQL Server Agent dan SQL Server Database Engine:

    • Nama akun: DOMAIN\sql_server dengan DOMAIN adalah nama NetBIOS domain Active Directory Anda
    • Sandi: masukkan sandi pengguna sql_server
  16. Pilih tab Kolasi, lalu pilih kolasi yang ingin Anda gunakan. Kemudian klik Berikutnya.

  17. Di halaman Database Engine Configuration, pilih Add current user untuk menetapkan pengguna saat ini sebagai administrator SQL Server. Di tab Data Directories, masukkan jalur SMB di kolom Data root directory dan pilih Next. Jendela pesan akan muncul yang memberi tahu Anda untuk memverifikasi bahwa akun layanan SQL Server memiliki izin berbagi kontrol penuh. Pilih Ya untuk melanjutkan.

    Volume Cloud

  18. Di halaman Siap Menginstal, tinjau setelan, lalu pilih Instal.

  19. Setelah penginstalan selesai, pilih Tutup.

Sekarang tambahkan node-2 ke cluster failover SQL Server:

  1. Hubungkan ke node-2 menggunakan Desktop Jarak Jauh dan login menggunakan domain Anda.
  2. Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
  3. Konfirmasi dialog elevasi dengan mengklik Ya.
  4. Mulai penyiapan SQL Server:

    & c:\sql_server_install\setup.exe
    
  5. Di menu di sebelah kiri, pilih Penginstalan.

  6. Pilih Tambahkan node ke cluster failover SQL Server.

  7. Ikuti petunjuk wizard penginstalan dan setujui setelan default hingga Anda mencapai halaman Akun Layanan.

  8. Di halaman Akun Layanan, masukkan sandi yang Anda buat sebelumnya untuk SQL Server Agent dan SQL Server Database Engine. Kemudian pilih Berikutnya.

  9. Di halaman Siap Menginstal, tinjau setelan, lalu pilih Instal.

  10. Setelah penginstalan selesai, pilih Tutup.

Mengonfigurasi health check

Sebagai langkah terakhir, konfigurasikan cluster untuk mengekspos endpoint health check yang dapat digunakan oleh load balancer internal:

  1. Kembali ke sesi PowerShell di node-2
  2. Lakukan inisialisasi variabel dengan alamat IP load balancer.

    $LoadBalancerIP = 'IP_ADDRESS'
    

    Ganti IP_ADDRESS dengan alamat IP dari alamat wsfc yang Anda cadangkan sebelumnya.

  3. Konfigurasikan Cluster Failover untuk merespons layanan health check:

    $SqlGroup = Get-ClusterGroup |
      Where-Object {$_.Name.StartsWith("SQL Server")}
    $SqlIpAddress = Get-ClusterResource |
      Where-Object {$_.Name.StartsWith("SQL IP Address")}
    
    $SqlIpAddress | Set-ClusterParameter -Multiple @{
     'Address'=$LoadBalancerIP;
     'ProbePort'= 59997;
     'SubnetMask'='255.255.255.255';
     'Network'= (Get-ClusterNetwork).Name;
     'EnableDhcp'=0; }
    
  4. Mulai ulang resource cluster:

    $SqlIpAddress | Stop-ClusterResource
    $SqlIpAddress | Start-ClusterResource
    
  5. Mulai ulang grup cluster:

    $SqlGroup | Stop-ClusterGroup
    $SqlGroup | Start-ClusterGroup
    

Membuat load balancer internal

Untuk menyediakan endpoint tunggal bagi klien SQL Server, Anda sekarang akan men-deploy load balancer internal. Load balancer menggunakan health check yang memastikan bahwa traffic diarahkan ke node aktif WSFC.

  1. Kembali ke sesi Cloud Shell yang ada.
  2. Buat grup instance tidak terkelola, lalu tambahkan dua node ke grup itu:

    REGION=$(gcloud config get-value compute/region)
    
    gcloud compute instance-groups unmanaged create wsfc-group-a \
      --zone $REGION-a
    gcloud compute instance-groups unmanaged add-instances wsfc-group-a \ 
      --zone $REGION-a --instances node-1
    
    gcloud compute instance-groups unmanaged create wsfc-group-b \
      --zone $REGION-b
    gcloud compute instance-groups unmanaged add-instances wsfc-group-b \ 
    --zone $REGION-b --instances node-2
    
  3. Buat health check yang dapat digunakan oleh load balancer untuk memastikan mana yang merupakan node aktif.

    gcloud compute health-checks create tcp wsfc-healthcheck \
      --check-interval="2s" \
      --healthy-threshold=1 \
      --unhealthy-threshold=2 \
      --port=59997 \
      --timeout="1s"
    

    Port pemeriksaan health check 59997, yaitu port yang sebelumnya Anda konfigurasikan sebagai ProbePort untuk alamat IP cluster WSFC.

  4. Buat layanan backend, lalu tambahkan grup instance:

    gcloud compute backend-services create wsfc-backend \
      --load-balancing-scheme internal \
      --region $REGION \
      --health-checks wsfc-healthcheck \
      --protocol tcp
    
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-a \
      --instance-group-zone $REGION-a \
      --region $REGION
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-b \
      --instance-group-zone $REGION-b \
      --region $REGION
    
  5. Buat load balancer internal:

    gcloud compute forwarding-rules create wsfc-sql \
      --load-balancing-scheme internal \
      --address $LOADBALANCER_ADDRESS \
      --ports 1433 \
      --network $VPC_NAME \
      --subnet $SUBNET_NAME \
      --region $REGION \
      --backend-service wsfc-backend
    

Menguji cluster failover

Penginstalan cluster failover telah selesai, tetapi Anda masih harus menguji apakah cluster berfungsi dengan benar.

Menyiapkan klien

Buat instance VM baru yang dapat Anda gunakan untuk terhubung dengan cluster failover:

  1. Kembali ke sesi Cloud Shell yang ada.
  2. Buat instance VM baru:

    gcloud compute instances create sqlclient \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd
    
  3. Pantau proses inisialisasi VM dengan melihat output port serialnya:

    gcloud compute instances tail-serial-port-output sqlclient
    

    Tunggu beberapa menit sampai Anda melihat penyiapan Instance output selesai, lalu tekan Ctrl+C. Pada tahap ini, instance VM siap digunakan.

  4. Buat nama pengguna dan sandi untuk instance VM

  5. Menghubungkan ke VM menggunakan Desktop Jarak Jauh dan login menggunakan nama pengguna dan sandi yang dibuat di langkah sebelumnya.

  6. Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).

  7. Konfirmasi dialog elevasi dengan mengklik Ya.

  8. Gabungkan instance VM ke domain Active Directory Anda:

    Add-Computer -Domain DOMAIN
    

    Ganti DOMAIN dengan nama DNS domain Active Directory Anda.

  9. Mulai ulang instance VM:

    Restart-Computer
    

    Tunggu hingga instance VM dimulai ulang.

Menjalankan pengujian

Gunakan VM sqlclient untuk menguji apakah Anda dapat terhubung dengan cluster failover dan untuk memastikan bahwa failover berfungsi dengan benar:

  1. Hubungkan ke sqlclient menggunakan Desktop Jarak Jauh dan login menggunakan domain Anda.
  2. Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell.
  3. Hubungkan ke cluster SQL Server menggunakan nama jaringannya sql, lalu buat kueri tabel dm_os_cluster_nodes:

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    

    Output-nya akan terlihat seperti ini:

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   0 up                                1
    NODE-2                                   0 up                                0
    
    (2 rows affected)
    

    Perhatikan bahwa node-1 adalah pemilik resource cluster failover SQL Server saat ini.

  4. Kembali ke Cloud Shell dan hapus VM node-1 untuk menguji skenario failover:

    gcloud compute instances stop node-1
    
  5. Ulangi kueri:

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    

    Output Anda sekarang akan terlihat seperti ini:

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   1 down                              0
    NODE-2                                   0 up                                1
    
    (2 rows affected)
    

    Perhatikan bahwa meskipun node-1 hilang, kueri berhasil, dan menunjukkan bahwa node-2 sekarang menjadi pemilik cluster failover saat ini.

Pembersihan

Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.

Menghapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.

Untuk menghapus project:

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.