במאמר הזה מוסבר איך להתחיל ולהפסיק שכפול אסינכרוני.
שכפול אסינכרוני שימושי להתאוששות מאסון עם RPO נמוך ו-RTO נמוך. מידע נוסף על שכפול אסינכרוני
מגבלות
- דיסק ראשי יכול לשכפל רק לדיסק משני אחד בכל פעם.
- אחרי שהשכפול מפסיק, אי אפשר להמשיך את השכפול לאותו דיסק. תצטרכו ליצור דיסק משני חדש ולהפעיל מחדש את השכפול.
- אי אפשר לצרף דיסקים משניים, למחוק אותם או ליצור להם קובץ snapshot בזמן שהם בתהליך שכפול.
- אם משתמשים בדיסק אזורי כבדיסק משני, ומתרחש הפסקת חשמל אזורית באחד מהאזורים של הדיסק המשני, השכפול מהדיסק הראשי לדיסק המשני נכשל.
לפני שמתחילים
- אם אתם צריכים ליישר את השכפול בין כמה דיסקים, אתם יכולים ליצור קבוצת עקביות.
- יצירת דיסק ראשי.
- יצירת דיסק משני.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צרו פרטי כניסה לאימות מקומי בחשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שדרושות להפעלה או להפסקה של שכפול, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) -
כדי להתחבר למופע שמצורף אליו חשבון שירות:
משתמש בחשבון שירות (גרסה 1) (
roles/iam.serviceAccountUser)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי להתחיל או להפסיק את הרפליקציה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להתחיל או להפסיק שכפול, נדרשות ההרשאות הבאות:
-
כדי להתחיל את הרפליקציה:
compute.disks.startAsyncReplication -
כדי להפסיק את השכפול של דיסק אחד:
compute.disks.stopAsyncReplication -
כדי להפסיק את השכפול של כל הדיסקים בקבוצת עקביות:
compute.disks.stopGroupAsyncReplication
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
התחלת הרפליקציה
מתחילים את השכפול באמצעות מסוף Google Cloud , Google Cloud CLI, REST או Terraform.
המסוף
נכנסים לדף Asynchronous replication במסוף Google Cloud .
לוחצים על השם של הדיסק המשני שאליו רוצים להתחיל לשכפל.
לוחצים על התחלת השכפול. נפתח החלון Start replication.
לוחצים על התחלת השכפול.
gcloud
מפעילים את הרפליקציה באמצעות הפקודה gcloud compute disks start-async-replication:
gcloud compute disks start-async-replication PRIMARY_DISK_NAME \
--PRIMARY_LOCATION_FLAG=PRIMARY_LOCATION \
--secondary-disk=SECONDARY_DISK_NAME \
--SECONDARY_LOCATION_FLAG=SECONDARY_LOCATION \
--secondary-disk-project=SECONDARY_PROJECT
מחליפים את מה שכתוב בשדות הבאים:
-
PRIMARY_DISK_NAME: השם של הדיסק הראשי. -
PRIMARY_LOCATION_FLAG: דגל המיקום של הדיסק הראשי. לדיסקים אזוריים, צריך להשתמש ב---region. לדיסקים אזוריים, משתמשים ב---zone. -
PRIMARY_LOCATION: האזור או התחום של הדיסק הראשי. בדיסקים אזוריים, צריך להשתמש באזור. בדיסקים אזוריים, משתמשים באזור. -
SECONDARY_DISK_NAME: השם של הדיסק המשני. -
SECONDARY_LOCATION_FLAG: דגל המיקום של הדיסק המשני. לדיסקים אזוריים, משתמשים ב---secondary-disk-region. לדיסקים אזוריים, משתמשים ב---secondary-disk-zone. -
SECONDARY_LOCATION: האזור או התחום של הדיסק המשני. בדיסקים אזוריים, צריך להשתמש באזור. בדיסקים אזוריים, משתמשים באזור. -
SECONDARY_PROJECT: הפרויקט שמכיל את הדיסק המשני.
המשך
Java
Node.js
Python
REST
מתחילים את השכפול באחת מהשיטות הבאות:
מתחילים את הרפליקציה של הדיסקים האזוריים באמצעות השיטה
disks.startAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/zones/PRIMARY_LOCATION/disks/PRIMARY_DISK_NAME/startAsyncReplication { "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME" }כדי להתחיל שכפול של דיסקים אזוריים באמצעות השיטה
regionDisks.startAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/regions/PRIMARY_LOCATION/regionDisks/PRIMARY_DISK_NAME/startAsyncReplication { "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME" }
מחליפים את מה שכתוב בשדות הבאים:
-
PRIMARY_DISK_PROJECT: הפרויקט שמכיל את הדיסק הראשי. -
PRIMARY_LOCATION: האזור או האזור הזמין של הדיסק הראשי. בדיסקים אזוריים, צריך להשתמש באזור. בדיסקים אזוריים, משתמשים באזור. -
PRIMARY_DISK_NAME: השם של הדיסק הראשי. -
SECONDARY_DISK_PROJECT: הפרויקט שמכיל את הדיסק המשני. -
SECONDARY_LOCATION_PARAMETER: פרמטר המיקום של הדיסק המשני. לדיסקים אזוריים, צריך להשתמש ב-regions. לדיסקים אזוריים, משתמשים ב-zones. -
SECONDARY_LOCATION: האזור או התחום של הדיסק המשני. בדיסקים אזוריים, צריך להשתמש באזור. בדיסקים אזוריים, משתמשים באזור. -
SECONDARY_DISK_NAME: השם של הדיסק המשני.
Terraform
כדי להתחיל שכפול בין דיסקים ראשיים ומשניים, משתמשים במשאב compute_disk_async_replication.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
הפסקת השכפול
אפשר להפסיק את הרפליקציה של דיסק ראשי או משני אחד, או של כל הדיסקים בקבוצת אפליקציות עקביות. אם מפסיקים את הרפליקציה של דיסק אחד בקבוצת אפליקציות עקביות, זמן הרפליקציה של הדיסק הזה לא מסונכרן עם הדיסקים האחרים בקבוצת האפליקציות העקביות.
הפסקת השכפול מתבצעת בתרחישים של מעבר לגיבוי פעיל וחזרה מגיבוי פעיל. אם מפסיקים את הרפליקציה, אי אפשר להפעיל אותה מחדש לאותו דיסק משני. כדי להפעיל מחדש את הרפליקציה, צריך ליצור דיסק משני חדש ולהתחיל מחדש.
כשמפסיקים את הרפליקציה בדיסק, מצב הרפליקציה של הדיסק משתנה ל-STOPPED. מצב השכפול של הדיסק השני בצמד השכפול של הדיסק (הדיסק הראשי או המשני התואם) מתעדכן ל-STOPPED בשלב מאוחר יותר. כדי להימנע מפער הזמנים ולעדכן את מצב הרפליקציה של הדיסק השני ל-STOPPED באופן מיידי, צריך להפסיק את הרפליקציה באופן ידני גם בדיסק השני. הפסקת השכפול בשני הדיסקים לא משפיעה על הזמן שבו השכפול מפסיק, אלא רק על מצבי השכפול של הדיסקים.
הפסקת השכפול של דיסק יחיד
כדי להפסיק את הרפליקציה של דיסק אחד, אפשר להשתמש במסוף Google Cloud , ב-Google Cloud CLI או ב-REST.
המסוף
כדי להפסיק את הרפליקציה:
נכנסים לדף Asynchronous replication במסוף Google Cloud .
לוחצים על השם של הדיסק הראשי או המשני שרוצים להפסיק את השכפול שלו. נפתח הדף Manage disk.
לוחצים על הפסקת השכפול. נפתח החלון Terminate replication.
לוחצים על הפסקת השכפול.
gcloud
מפסיקים את הרפליקציה באמצעות הפקודה gcloud compute disks stop-async-replication:
gcloud compute disks stop-async-replication DISK_NAME \
--LOCATION_FLAG=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
DISK_NAME: שם הדיסק. -
LOCATION_FLAG: דגל המיקום של הדיסק. לדיסק אזורי, משתמשים ב---region. לדיסק אזורי, משתמשים ב---zone. -
LOCATION: האזור או האזור של הדיסק. לדיסקים אזוריים, צריך להשתמש באזור. בדיסקים אזוריים, משתמשים באזור.
המשך
Java
Node.js
Python
REST
כדי להפסיק את השכפול, משתמשים באחת מהשיטות הבאות:
כדי להפסיק את השכפול של דיסקים אזוריים באמצעות השיטה
disks.stopAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/stopAsyncReplication { }כדי להפסיק את השכפול של דיסקים אזוריים באמצעות השיטה
regionDisks.stopAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication { }
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT: הפרויקט שמכיל את הדיסק. -
DISK_NAME: שם הדיסק. -
LOCATION: האזור או המחוז של הדיסק. בדיסקים של תחום מוגדר, משתמשים בתחום. בדיסקים אזוריים, צריך להשתמש באזור.
Terraform
כדי להפסיק את השכפול בדיסקים הראשיים והמשניים, מסירים את המשאב compute_disk_async_replication.
הפסקת השכפול של קבוצת אפליקציות עקביות
כדי להפסיק את השכפול של כל הדיסקים בקבוצת עקביות, משתמשים במסוףGoogle Cloud , ב-Google Cloud CLI או ב-REST.
המסוף
כדי להפסיק את הרפליקציה של כל הדיסקים בקבוצת אפליקציות עקביות:
נכנסים לדף קבוצות אפליקציות עקביות במסוף Google Cloud .
בכרטיסייה Disk consistency groups, לוחצים על השם של קבוצת הדיסקים העקביים שרוצים להפסיק את הרפליקציה שלה. ייפתח הדף ניהול קבוצת עקביות.
לוחצים על Terminate replication. נפתח החלון Terminate replication.
לוחצים על הפסקת השכפול.
gcloud
כדי להפסיק את השכפול של כל הדיסקים בקבוצת עקביות, משתמשים בפקודה gcloud compute disks stop-group-async-replication:
gcloud compute disks stop-group-async-replication CONSISTENCY_GROUP \ --LOCATION_FLAG=LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
CONSISTENCY_GROUP: כתובת ה-URL של קבוצת העקביות. לדוגמה,projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME. -
LOCATION_FLAG: דגל המיקום של הדיסקים בקבוצת אפליקציות עקביות. לדיסקים אזוריים, צריך להשתמש ב---region. לדיסקים אזוריים, משתמשים ב---zone. -
LOCATION: האזור או האזור של הדיסק. בדיסקים אזוריים, משתמשים באזור. בדיסקים אזוריים, משתמשים באזור.
המשך
Java
Node.js
Python
REST
כדי להפסיק את השכפול של כל הדיסקים בקבוצת עקביות, משתמשים באחת מהשיטות הבאות:
כדי להפסיק את השכפול של דיסקים אזוריים באמצעות השיטה
disks.stopGroupAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/stopGroupAsyncReplication { "resourcePolicy": "CONSISTENCY_GROUP" }מפסיקים את הרפליקציה של דיסקים אזוריים באמצעות השיטה
regionDisks.stopGroupAsyncReplication:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication { "resourcePolicy": "CONSISTENCY_GROUP" }
מחליפים את מה שכתוב בשדות הבאים:
-
DISK_NAME: שם הדיסק -
LOCATION: האזור או המחוז של הדיסק. בדיסקים של תחום מוגדר, משתמשים בתחום. בדיסקים אזוריים, צריך להשתמש באזור. -
CONSISTENCY_GROUP: כתובת ה-URL של קבוצת האפליקציות העקביות. לדוגמה,projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME.
המאמרים הבאים
- איך מבצעים מעבר לגיבוי בעת כשל ומעבר חזרה לגיבוי בעת כשל
- איך עוקבים אחרי הביצועים של רפליקציה אסינכרונית