Dokumen ini menjelaskan cara mempertahankan deployment Spanner Omni. Mempertahankan deployment Spanner Omni mencakup pemeriksaan kesehatan rutin, menonaktifkan elemen yang tidak sehat, dan mengganti node server atau disk yang rusak untuk memastikan stabilitas dan konsistensi cluster. Mengelola kesehatan database melindungi database Anda dari gangguan yang tidak direncanakan dan mempertahankan redundansi grup konsensus Paxos yang mendasarinya.
Melakukan pemeliharaan membantu Anda:
Memastikan ketersediaan tinggi: Menyediakan ulang virtual machine (VM) yang tidak sehat atau pod untuk mempertahankan redundansi server database. Hal ini membantu Anda menjaga aplikasi tetap berjalan jika hardware gagal.
Melindungi keamanan dan integritas data: Menonaktifkan node dengan disk yang rusak untuk mencegah kegagalan penyimpanan menyebar ke bagian lain database. Hal ini juga memastikan bahwa server yang terputus tidak mencatat update yang bertentangan.
Sebelum memulai
Sebelum melakukan pemeliharaan pada deployment Kubernetes, Anda harus melakukan hal berikut:
Membuat deployment Spanner Omni. Untuk mengetahui informasi selengkapnya, lihat Membuat deployment di Kubernetes atau Membuat deployment di VM.
Mendownload dan menginstal Spanner Omni CLI.
Untuk deployment di Kubernetes, instal Helm dan buat konfigurasi chart Helm.
Mengganti server
Anda mungkin perlu mengganti server dalam deployment untuk mengatasi kesalahan sistem atau penyimpanan.
Mengganti server root
Untuk mengganti server root, pilih tab untuk lingkungan Anda:
Kubernetes
Untuk mengganti server root dalam deployment Kubernetes, lakukan langkah-langkah berikut. Meskipun menambahkan lebih banyak server root ke deployment Kubernetes yang ada tidak didukung, Anda dapat mengganti server root yang ada untuk mengatasi error yang tidak dapat dipulihkan yang Anda alami.
Hapus server yang ingin Anda ganti:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEGanti kode berikut:
SERVER_ENDPOINT: Endpoint pod server yang akan dihapus, dalam formatSERVER.pod.NAMESPACE:PORT—misalnya,spanner-a-1.pod.spanner-ns:15000. Untuk menemukan endpoint server dalam deployment, cantumkan server deployment dengan menjalankanspanner deployment servers list --zone=ZONE.ZONE: Zona yang berisi server—misalnya,us-central1-a.
Langkah ini mungkin memerlukan waktu beberapa menit, bergantung pada volume data di server. Spanner Omni memindahkan data dari server ini ke server lain dalam deployment. Pastikan penghapusan server selesai sebelum melanjutkan ke langkah berikutnya.
Untuk melacak progres penghapusan, periksa status server:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONETunggu hingga perintah menampilkan error
NOT_FOUNDatau menunjukkan bahwa server tidak lagi terdaftar.Hapus klaim volume persisten (PVC) untuk pod yang menghosting server:
kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACEGanti kode berikut:
DATA_VOLUME_NAME: Nama volume data—misalnya,data-volume-spanner-a-1. Untuk menemukan nama volume data, cantumkan PVC di namespace Anda dengan menjalankankubectl get pvc -n NAMESPACE.NAMESPACE: Namespace deployment—misalnya,spanner-ns.
Hapus pod:
kubectl delete pod POD_NAME -n NAMESPACEGanti
POD_NAMEdengan nama pod server yang akan dihapus—misalnya,spanner-a-1.Kubernetes otomatis memulai server baru di pod pengganti dan melampirkan PVC baru.
Tambahkan server baru ke deployment:
spanner deployment servers create SERVER_ENDPOINT --zone=ZONEPastikan argumen cocok dengan endpoint dan zona pod baru—misalnya, menggunakan
spanner-a-1.pod.spanner-ns:15000sebagai endpoint danus-central1-asebagai zona.
VM
Untuk mengganti server root dalam deployment VM, lakukan langkah-langkah berikut:
Hapus server yang ingin Anda ganti:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEGanti kode berikut:
SERVER_ENDPOINT: Alamat IP server atau nama host dan port—misalnya,spanner-vm-1.example.com:15000. Untuk menemukan endpoint server, cantumkan server deployment dengan menjalankanspanner deployment servers list --zone=ZONE.ZONE: Zona yang berisi server—misalnya,us-central1-a.
Langkah ini mungkin memerlukan waktu beberapa menit, bergantung pada volume data di server. Spanner Omni memindahkan data dari server ini ke server lain dalam deployment. Pastikan penghapusan server selesai sebelum melanjutkan ke langkah berikutnya.
Untuk melacak progres penghapusan, periksa status server:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONETunggu hingga perintah menampilkan error
NOT_FOUNDatau menunjukkan bahwa server tidak lagi terdaftar.Sediakan ulang server dengan penyimpanan bersih seperti yang dijelaskan dalam Membuat deployment untuk Spanner Omni di VM:
spanner start \ --root \ --server-address=HOSTNAME \ --zone=ZONE \ --base-dir=BASE_DIRGanti kode berikut:
HOSTNAME: FQDN atau nama host VM baru yang dapat di-resolve—misalnya,spanner-vm-1.example.com.ZONE: Zona target—misalnya,us-central1-a.BASE_DIR: Jalur tempat data disimpan—misalnya,./span-dir.
Tambahkan server baru ke deployment:
spanner deployment servers create SERVER_ENDPOINT --zone=ZONEPastikan argumen cocok dengan parameter server baru—misalnya, menggunakan
spanner-vm-1.example.com:15000sebagai endpoint danus-central1-asebagai zona.
Mengganti server non-root
Untuk mengganti server non-root, pilih tab untuk lingkungan Anda:
Kubernetes
Untuk mengganti server non-root dalam deployment Kubernetes, lakukan langkah-langkah berikut:
Hapus server yang ingin Anda ganti:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEGanti kode berikut:
SERVER_ENDPOINT: Endpoint pod server yang akan dihapus, dalam formatSERVER.pod.NAMESPACE:PORT—misalnya,spanner-a-4.pod.spanner-ns:15000. Untuk menemukan endpoint server dalam deployment, cantumkan server deployment dengan menjalankanspanner deployment servers list --zone=ZONE.ZONE: Zona yang berisi server—misalnya,us-central1-a.
Langkah ini mungkin memerlukan waktu beberapa menit, bergantung pada volume data di server. Spanner Omni memindahkan data dari server ini ke server lain dalam deployment. Pastikan penghapusan server selesai sebelum melanjutkan ke langkah berikutnya.
Untuk melacak progres penghapusan, periksa status server:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONETunggu hingga perintah menampilkan error
NOT_FOUNDatau menunjukkan bahwa server tidak lagi terdaftar.Hapus klaim volume persisten (PVC) untuk pod yang menghosting server:
kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACEGanti kode berikut:
DATA_VOLUME_NAME: Nama volume data—misalnya,data-volume-spanner-a-4. Untuk menemukan nama volume data, cantumkan PVC di namespace Anda dengan menjalankankubectl get pvc -n NAMESPACE.NAMESPACE: Namespace deployment—misalnya,spanner-ns.
Hapus pod:
kubectl delete pod POD_NAME -n NAMESPACEGanti
POD_NAMEdengan nama pod server yang akan dihapus—misalnya,spanner-a-4.Kubernetes otomatis memulai server baru di pod pengganti dan melampirkan PVC baru. Spanner Omni otomatis mendaftarkan server non-root baru ke dalam deployment.
VM
Untuk mengganti server non-root dalam deployment VM, lakukan langkah-langkah berikut:
Hapus server yang ingin Anda ganti:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEGanti kode berikut:
SERVER_ENDPOINT: Alamat IP server atau nama host dan port—misalnya,spanner-vm-4.example.com:15000. Untuk menemukan endpoint server, cantumkan server deployment dengan menjalankanspanner deployment servers list --zone=ZONE.ZONE: Zona yang berisi server—misalnya,us-central1-a.
Langkah ini mungkin memerlukan waktu beberapa menit, bergantung pada volume data di server. Spanner Omni memindahkan data dari server ini ke server lain dalam deployment. Pastikan penghapusan server selesai sebelum melanjutkan ke langkah berikutnya.
Untuk melacak progres penghapusan, periksa status server:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONETunggu hingga perintah menampilkan error
NOT_FOUNDatau menunjukkan bahwa server tidak lagi terdaftar.Sediakan ulang server non-root dengan penyimpanan bersih seperti yang dijelaskan dalam Menambahkan server non-root. Server akan otomatis ditambahkan ke deployment.