Mengonfigurasi SQL Server di Platform Google Cloud menggunakan Cloud Volumes Service


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

Grup ketersediaan Always On (AG) Microsoft SQL Server memungkinkan Anda mereplikasi database di beberapa instance SQL Server Enterprise. Instance SQL Server Always On tradisional biasanya mengharuskan setiap node mempertahankan salinan data, yang dapat dengan cepat menjadi mahal seiring pertumbuhan database. Misalnya, dalam deployment SQL Server Always On tradisional, jika database berukuran 10 TB, setiap replika harus menyediakan penyimpanan setidaknya 10 TB. Salah satu manfaat deployment Windows Server Failover Cluster (WSFC) 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 di instance cluster failover (FCI) di WSFC dapat langsung menghemat biaya dengan mengurangi jumlah penyimpanan yang diperlukan.

NetApp Cloud Volumes Service adalah solusi penyimpanan cloud untuk menjalankan beban kerja 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 Layanan Volume Cloud tanpa mengganggu konektivitas ke aplikasi server yang menyimpan dan mengakses data di volume SMB. Untuk mendukung SMB Transparent Failover, Layanan Cloud Volumes mendukung opsi berbagi SMB continuous availability (CA) untuk digunakan dengan workload SQL Server. Hal ini memberikan peningkatan performa, skalabilitas, dan manfaat biaya untuk satu instance, instance cluster failover Always On (AOFC), dan deployment grup ketersediaan Always On.

Halaman ini ditujukan untuk administrator database Layanan NetApp Cloud Volumes dan SQL Server yang bertanggung jawab untuk men-deploy Microsoft SQL Server di Google Cloud. Hal ini mengasumsikan 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 Cloudyang dapat ditagih, termasuk:

Gunakan kalkulator harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan.

Sebelum memulai

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

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  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 diaktifkan untuk project Google Cloud Anda.
  7. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

Menyiapkan project dan jaringan

Untuk menyiapkan project Google Cloud dan Virtual Private Cloud (VPC) guna men-deploy grup ketersediaan SQL Server Always On, lakukan hal berikut:

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

    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 Layanan Cloud Volumes 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 Alokasikan.
    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 langkah berikut:

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

      Buka NetApp Volumes

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

    3. Klik tombol Create.

    4. Tentukan nama untuk kebijakan Active Directory.

    5. Di bagian Region, pilih region yang tersedia dan paling dekat 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 Kredensial Active Directory, 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 ada.

    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 di bagian Storage.
    2. Klik tombol Create.
    3. Masukkan nama untuk penyimpanan.
    4. Di bagian Location, pilih region yang tersedia yang paling dekat dengan tempat instance SQL Server akan dihosting.
    5. Pilih Tingkat Layanan yang akan memenuhi performa penyimpanan yang diharapkan.
    6. Masukkan Kapasitas untuk kumpulan penyimpanan. Kapasitas gabungan penyimpanan menentukan total kapasitas penyimpanan yang dapat dialokasikan untuk semua volume dalam gabungan.
    7. Di 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, lalu klik Lanjutkan.
      3. Klik tombol Create Connection.
    8. Di bagian Active Directory policy, pilih Assign an Active Directory policy to the storage pool dan pilih kebijakan Active Directory yang dibuat di 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 di bagian Storage.
    2. Klik tombol Create.
    3. Tentukan nama untuk volume penyimpanan.
    4. Di bagian Detail kumpulan penyimpanan, klik Pilih kumpulan penyimpanan untuk memilih kumpulan penyimpanan yang dibuat di langkah sebelumnya.
    5. Di bagian Detail volume, berikan informasi berikut:
      1. Bagikan nama
      2. Kapasitas volume
    6. Di bagian Konfigurasi kapasitas besar, pilih protokol SMB.
    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

Agar klien dapat terhubung ke SQL Server, mengizinkan komunikasi antara node Windows Server Failover Cluster (WSFC), dan mengaktifkan load balancer untuk melakukan health check, Anda perlu membuat beberapa aturan firewall. Untuk menyederhanakan pembuatan aturan firewall ini, 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, gunakan 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 Google Cloud penguji:

    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:

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

  • telah mengaktifkan dukungan Compute Engine WSFC

Untuk memberikan suara penentu setelah hasil imbang dan mencapai kuorum untuk skenario failover, Anda men-deploy instance VM ketiga node-3 yang berfungsi sebagai saksi fitur 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 prompt elevasi dengan mengklik Yes.

    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, lalu pilih volume yang baru saja dibuat.

    Cloud Volume

  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 di folder.

    Cloud Volume

  6. Saat login, nonaktifkan opsi Hubungkan Kembali.

  7. Klik Selesai.

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

    Cloud Volume

  9. Dari tab Security, klik Edit.

  10. Hapus Semua orang dan tambahkan penginstal SQL Server dan akun layanan SQL Server dengan izin kontrol penuh.

    Cloud Volume

  11. Konfirmasi prompt elevasi dengan mengklik Yes.

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-nya karena Anda akan memerlukannya 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 prompt elevasi dengan mengklik Yes.
  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

Sekarang Anda 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 prompt elevasi dengan mengklik Yes.
  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 AD Terkelola, tambahkan akun komputer yang digunakan oleh WSFC ke grup Akun Penggabungan Domain Layanan Cloud agar dapat menggabungkan instance VM ke domain:

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

Menghapus penginstalan SQL Server default

Sekarang Anda akan menghapus penginstalan SQL Server default dari kedua node dan menggantinya 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 prompt elevasi dengan mengklik Yes.
  3. Hapus instance SQL Server default:

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

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

    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. Hubungkan kembali ke node-1 menggunakan Desktop Jarak Jauh, lalu login menggunakan pengguna 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 kiri, buka Failover Cluster Manager > windows-fci, lalu lakukan tindakan 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 di node-1:

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

  3. Mulai penyiapan SQL Server:

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

  5. Pilih Penginstalan cluster failover SQL Server baru.

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

  7. Di halaman Persyaratan Lisensi, pelajari persyaratan dan, jika Anda menyetujuinya, klik Berikutnya.

  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 dan mengklik Berikutnya.

  10. Di halaman Pemilihan Fitur, pilih Layanan Mesin Database, lalu klik Berikutnya.

  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 Konfigurasi Mesin Database, pilih Tambahkan pengguna saat ini untuk menetapkan pengguna saat ini sebagai administrator SQL Server. Di tab Data Directories, masukkan jalur SMB di kolom Data root directory, lalu 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.

    Cloud Volume

  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, lalu login menggunakan pengguna domain Anda.
  2. Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
  3. Konfirmasi prompt elevasi dengan mengklik Yes.
  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 satu endpoint 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 hingga 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. Hubungkan 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 prompt elevasi dengan mengklik Yes.

  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, lalu login menggunakan pengguna 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, lalu turunkan 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. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.