התאמה אישית של ההתקנה של AlloyDB Omni

בוחרים גרסה של מאמרי העזרה:

בדף הזה מוסבר איך להתאים אישית את ההתקנה של AlloyDB Omni, שנפרסת באמצעות קובץ אימג' של קונטיינר שתומך בצורות שונות של התאמה אישית. בדף הזה מוצגות כמה התאמות אישיות נפוצות.

הפעלה והשבתה של מדידת נתונים מרחוק ב-AlloyDB Omni

מדידת הנתונים מרחוק ב-AlloyDB Omni מטמיעה סוכן לקוח קל משקל שפועל רק בקובץ האימג' של הקונטיינר של AlloyDB Omni. הסוכן הזה אוסף מעת לעת קבוצה של מדדים בסיסיים פסאודונימיים ושולח אותם לנקודת קצה שמנוהלת על ידי Google.

מכיוון ש-AlloyDB Omni הוא מוצר שניתן להורדה ומוצע ללא תשלום, נתוני הטלמטריה האלה מספקים ל-Google מדדים חיוניים של מידע שלא מאפשר זיהוי אישי (non-PII) לגבי סביבות הפריסה וההטמעה הגנריות של מכונות פועלות. הנתונים האלה עוזרים לנו לפתח את המוצר ולקבוע את סדר העדיפויות של התמיכה.

המדדים שנאספים כוללים את המדדים הבאים:

  • מזהה התקנה ייחודי (UUID שעבר פסאודונימיזציה)
  • גרסת AlloyDB Omni וגרסה ראשית של PostgreSQL
  • פרטי המערכת המארחת, כמו מספר המעבדים, זיכרון ה-RAM וזמן הפעולה התקינה

השבתה של הדיווח על נתוני הטלמטריה

כדי למנוע מהסוכן הטלמטרי לפעול ולדווח על מדדי שימוש, מגדירים את הפרמטר omni_enable_telemetry של PostgreSQL ל-off. כדי להשבית את סוכן הטלמטריה, אפשר להגדיר את דגל הטלמטריה בקובץ postgresql.conf או להגדיר את הדגל בזמן הריצה באמצעות ALTER SYSTEM.

הגדרת דגל הטלמטריה בקובץ postgresql.conf

כדי לשנות את קובץ התצורה של PostgreSQL בספריית הנתונים הקבועה של הקונטיינר:

  1. מאתרים את הקובץ postgresql.conf בספריית הנתונים של מסד הנתונים ($PGDATA).
  2. השבתת מדידת הנתונים מרחוק ב-AlloyDB Omni.

    omni_enable_telemetry = off
    
  3. כדי להחיל את השינוי, מפעילים מחדש את מאגר AlloyDB Omni. סוכן הטלמטרייה מפסיק לאסוף ולשלוח מדדי שימוש אל Google.

הגדרת דגל הטלמטריה בזמן הריצה באמצעות ALTER SYSTEM

כדי להגדיר את דגל הטלמטריה ולשמור את השינוי גם אחרי הפעלה מחדש, פועלים לפי השלבים הבאים:

  1. מתחברים למכונה של AlloyDB Omni באמצעות psql:

    psql -h HOST -U USER -d DATABASE
    

    מחליפים את הפרטים הבאים:

    • ‫HOST: שם המארח או כתובת ה-IP של מכונת AlloyDB Omni, לדוגמה 127.0.0.1.
    • ‫USER: המשתמש במסד הנתונים שאליו רוצים להתחבר, לדוגמה postgres.
    • ‫DATABASE: מסד הנתונים שאליו רוצים להתחבר, לדוגמה postgres.
  2. מריצים את הפקודה הבאה:

    ALTER SYSTEM SET omni_enable_telemetry = 'off';
    
  3. טוענים מחדש את ההגדרות או מפעילים מחדש את המכונה. בחלק מההגדרות של קונטיינרים, יכול להיות שתצטרכו להפעיל מחדש את המכונה כדי לוודא שהשינוי נקלט במלואו על ידי ה-background worker.

    SELECT pg_reload_conf();
    

    סוכן הטלמטריה מפסיק לאסוף ולשלוח ל-Google מדדי שימוש.

הפעלת דיווח על נתוני טלמטריה

אם השבתתם בעבר את מדידת הנתונים מרחוק ב-AlloyDB Omni, תוכלו להפעיל אותה מחדש על ידי הגדרת הדגל omni_enable_telemetry לערך on. כדי להפעיל את סוכן הטלמטריה, מגדירים את הדגל בקובץ postgresql.conf או מגדירים את הדגל בזמן הריצה באמצעות ALTER SYSTEM.

הגדרת דגל הטלמטריה בקובץ postgresql.conf

  1. מאתרים את הקובץ postgresql.conf בספריית הנתונים של מסד הנתונים ($PGDATA).
  2. מגדירים את השורה הבאה:

    omni_enable_telemetry = on
    
  3. כדי להחיל את השינוי, מפעילים מחדש את מאגר AlloyDB Omni.

הגדרת דגל הטלמטריה בזמן הריצה באמצעות ALTER SYSTEM

  1. מתחברים למכונה של AlloyDB Omni באמצעות psql.
  2. מריצים את הפקודה הבאה:

    ALTER SYSTEM SET omni_enable_telemetry = 'on';
    
  3. כדי להחיל את השינוי, מפעילים מחדש את מאגר AlloyDB Omni.

    docker restart CONTAINER_NAME
    

    מחליפים את הפרטים הבאים:

    • ‫CONTAINER_NAME: השם של מאגר AlloyDB Omni, לדוגמה my-omni-1.

בדיקת הסטטוס של מדידת הנתונים מרחוק ב-AlloyDB Omni

אתם יכולים לבדוק את הסטטוס של סוכן מדידת הנתונים מרחוק ב-AlloyDB Omni, כולל אם הוא מופעל או פועל. אפשר גם לבדוק את הפעילות של סוכן הטלמטריה.

איך בודקים אם סוכן הטלמטריה מופעל או מושבת

כדי לבדוק את הסטטוס של הגדרת הטלמטריה, פועלים לפי השלבים הבאים:

  1. מתחברים למופע.
  2. מריצים את הפקודה הבאה:
SHOW omni_enable_telemetry;

הפלט מחזיר את הערך on או off, בהתאם להשבתה או להפעלה של מדידת הנתונים מרחוק ב-AlloyDB Omni.

איך בודקים אם סוכן הטלמטריה פועל

כדי לבדוק אם סוכן הטלמטריה פועל, מריצים את הפקודה הבאה במארח של הקונטיינר:

docker top CONTAINER_NAME

מחליפים את הפרטים הבאים:

  • ‫CONTAINER_NAME: השם של מאגר AlloyDB Omni, לדוגמה my-omni-1.

אם הטלמטריה מופעלת ופועלת, הפלט מכיל שורה עם הטקסט postgres: omni telemetry worker.

בדיקת הפעילות של סוכן הטלמטריה

כדי לבדוק את הפעילות של סוכן הטלמטריה, מריצים את הפקודה הבאה במארח של הקונטיינר:

docker logs CONTAINER_NAME 2>&1 | grep telemetry

מחליפים את הפרטים הבאים:

  • ‫CONTAINER_NAME: השם של מאגר AlloyDB Omni, לדוגמה my-omni-1.

אם סוכן הטלמטריה פועל, היומנים יכילו הודעות שדומות להודעות הבאות:

LOG:  [telemetry_agent_worker.cc:143]  Started telemetry worker
LOG:  [telemetry_agent_worker.cc:161]  Running telemetry reporting agent
telemetry_agent: Uploading telemetry data to https://cloud.google.com/log.

התקנה של ספריית נתונים חיצונית

כברירת מחדל, הפקודה במדריך למתחילים: התקנת AlloyDB Omni מאחסנת את נתוני מסד הנתונים באזור שמנוהל על ידי Docker או Podman. השיטה הזו נוחה להתחלה, אבל קשה למצוא את ספריית הנתונים ולהשתמש בה. במקום זאת, אפשר להגדיר bind mount כדי למפות את ספריית הנתונים למיקום מוכר בדיסק.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v DATA_DIR:/var/lib/postgresql/data \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

מחליפים את המשתנים הבאים:

  • ‫CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
  • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
  • ‫DATA_DIR: נתיב ספריית המארח שבה הנתונים מאוחסנים.
  • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
  • ‫IMAGE_TAG: משתמשים ב-17.5.0 בשביל קובץ האימג' האחרון של Debian, או ב-17.5.0-ubi9 בשביל קובץ האימג' האחרון של UBI.

טעינה של ספריית נתונים חיצונית כשמשתמשים ב-SELinux

אם SELinux מופעל והמצב מוגדר ל-enforcing, ניסיון להרכיב ספריית נתונים חיצונית מוביל לשגיאות הרשאה. כדי לטעון ספריית נתונים חיצונית כשמשתמשים ב-SELinux, פועלים לפי ההוראות הבאות:

Docker

  1. אם הקונטיינר של AlloyDB Omni פועל, צריך לעצור אותו.
    docker stop CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  2. מגדירים את המצב של SELinux ל-permissive. כך תוכלו להריץ את הקונטיינר ולזהות את הפרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.
    setenforce 0
  3. מריצים את הקונטיינר עם ספריית נתונים חיצונית.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
    • ‫DATA_DIR: נתיב ספריית המארח שבה הנתונים מאוחסנים.
    • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • ‫IMAGE_TAG: משתמשים ב-17.5.0 לתמונת Debian העדכנית או ב-17.5.0-ubi9 לתמונת UBI העדכנית.
  4. אם עדיין לא התקנתם את policycoreutils-python-utils, התקינו אותו באמצעות הכלי לניהול חבילות. החבילה הזו מספקת כלי שירות שנדרשים לניהול כללי מדיניות SELinux.
  5. מגדירים את ההקשר המתאים של SELinux לספריית הנתונים החיצונית.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    מחליפים את המשתנה הבא:
    • ‫DATA_DIR: הנתיב לספריית המארח שבה מאוחסנים הנתונים.
  6. אפשר להשתמש בסימן ausearch כדי לקבל מידע על דרישות ההרשאה הנוספות.
    ausearch -c 'postgres' --raw > postgres.avc
  7. ליצור פרופיל אבטחה של SELinux על סמך הקונטיינר של AlloyDB Omni ופרטי ההרשאות של ausearch.
    docker inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  8. טוענים את מודול SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  9. הפעלה של mmap.
    setsebool -P domain_can_mmap_files 1
  10. עוצרים ומסירים את הקונטיינר של AlloyDB Omni.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  11. מגדירים את המצב של SELinux ל-enforcing.
    setenforce 1
  12. יוצרים מחדש את קונטיינר AlloyDB Omni.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • ‫CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה, my-omni-1.
    • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
    • ‫DATA_DIR: נתיב ספריית המארח שבה הנתונים מאוחסנים.
    • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • ‫IMAGE_TAG: משתמשים ב-17.5.0 בשביל קובץ האימג' האחרון של Debian, או ב-17.5.0-ubi9 בשביל קובץ האימג' האחרון של UBI.

Docker

  1. אם הקונטיינר של AlloyDB Omni פועל, צריך לעצור אותו.
    docker stop CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  2. מגדירים את המצב של SELinux ל-permissive. כך תוכלו להריץ את הקונטיינר ולזהות את הפרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.
    sudo setenforce 0
  3. מריצים את הקונטיינר עם ספריית נתונים חיצונית.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
    • ‫DATA_DIR: נתיב ספריית המארח שבה הנתונים מאוחסנים.
    • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • ‫IMAGE_TAG: משתמשים ב-17.5.0 לתמונת Debian העדכנית או ב-17.5.0-ubi9 לתמונת UBI העדכנית.
  4. אם עדיין לא התקנתם את policycoreutils-python-utils, התקינו אותו באמצעות הכלי לניהול חבילות. החבילה הזו מספקת כלי שירות שנדרשים לניהול כללי מדיניות SELinux.
  5. אם ספריית הנתונים החיצונית לא נמצאת בספריית הבית, צריך להגדיר את ההקשר המתאים של SELinux.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    מחליפים את המשתנה הבא:
    • ‫DATA_DIR: הנתיב לספריית המארח שבה מאוחסנים הנתונים.
  6. אפשר להשתמש בסימן ausearch כדי לקבל מידע על דרישות ההרשאה הנוספות.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. יוצרים פרופיל אבטחה של SELinux על סמך המידע על קונטיינר AlloyDB Omni והרשאת ausearch.
    docker inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  8. טוענים את מודול SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  9. הפעלה של mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. עוצרים ומסירים את הקונטיינר של AlloyDB Omni.
    docker stop CONTAINER_NAME && docker rm CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  11. מגדירים את המצב של SELinux ל-enforcing.
    sudo setenforce 1
  12. יוצרים מחדש את מאגר AlloyDB Omni.
    docker run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
    • ‫DATA_DIR: נתיב ספריית המארח שבה הנתונים מאוחסנים.
    • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • ‫IMAGE_TAG: משתמשים ב-17.5.0 בשביל קובץ האימג' האחרון של Debian, או ב-17.5.0-ubi9 בשביל קובץ האימג' האחרון של UBI.

Podman

  1. אם קונטיינר AlloyDB Omni פועל, צריך להפסיק אותו.
    podman stop CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  2. מגדירים את המצב של SELinux ל-permissive. כך תוכלו להריץ את הקונטיינר ולזהות את הפרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.
    setenforce 0
  3. מריצים את הקונטיינר עם ספריית נתונים חיצונית.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • ‫CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה, my-omni-1.
    • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
    • ‫DATA_DIR: נתיב ספריית המארח שבה הנתונים מאוחסנים.
    • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • ‫IMAGE_TAG: משתמשים ב-17.5.0 לתמונת Debian העדכנית או ב-17.5.0-ubi9 לתמונת UBI העדכנית.
  4. אם עדיין לא התקנתם את policycoreutils-python-utils, התקינו אותו באמצעות הכלי לניהול חבילות. החבילה הזו מספקת כלי שירות שנדרשים לניהול כללי מדיניות SELinux.
  5. מגדירים את ההקשר המתאים של SELinux לספריית הנתונים החיצונית.
    semanage fcontext -a -t container_file_t "DATA_DIR"
    restorecon -Rv "DATA_DIR"
    מחליפים את המשתנה הבא:
    • ‫DATA_DIR: הנתיב לספריית המארח שבה מאוחסנים הנתונים.
  6. אפשר להשתמש בסימן ausearch כדי לקבל מידע על דרישות ההרשאה הנוספות.
    ausearch -c 'postgres' --raw > postgres.avc
  7. ליצור פרופיל אבטחה של SELinux על סמך הקונטיינר של AlloyDB Omni ופרטי ההרשאות של ausearch.
    podman inspect CONTAINER_NAME | udica --append-rules postgres.avc CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  8. טוענים את מודול SELinux.
    semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  9. הפעלה של mmap.
    setsebool -P domain_can_mmap_files 1
  10. עוצרים ומסירים את הקונטיינר של AlloyDB Omni.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  11. מגדירים את המצב של SELinux ל-enforcing.
    setenforce 1
  12. יוצרים מחדש את מאגר AlloyDB Omni.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    docker.io/google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • ‫CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה, my-omni-1.
    • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
    • ‫DATA_DIR: נתיב ספריית המארח שבה הנתונים מאוחסנים.
    • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • ‫IMAGE_TAG: משתמשים ב-17.5.0 בשביל קובץ האימג' האחרון של Debian, או ב-17.5.0-ubi9 בשביל קובץ האימג' האחרון של UBI.

Podman

  1. אם הקונטיינר של AlloyDB Omni פועל, צריך לעצור אותו.
    podman stop CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  2. מגדירים את המצב של SELinux ל-permissive. כך תוכלו להריץ את הקונטיינר ולזהות את הפרטים לגבי הגישה שנדרשת כדי לטעון ספריית נתונים חיצונית.
    sudo setenforce 0
  3. מריצים את הקונטיינר עם ספריית נתונים חיצונית.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    docker.io/google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
    • ‫DATA_DIR: נתיב ספריית המארח שבה הנתונים מאוחסנים.
    • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • ‫IMAGE_TAG: משתמשים ב-17.5.0 לתמונת Debian העדכנית או ב-17.5.0-ubi9 לתמונת UBI העדכנית.
  4. אם עדיין לא התקנתם את policycoreutils-python-utils, התקינו אותו באמצעות הכלי לניהול חבילות. החבילה הזו מספקת כלי שירות שנדרשים לניהול כללי מדיניות SELinux.
  5. בספריית הנתונים החיצונית, מגדירים את הקשר המתאים של SELinux.
    sudo semanage fcontext -a -t container_file_t "DATA_DIR"
    sudo restorecon -Rv "DATA_DIR"
    מחליפים את המשתנה הבא:
    • ‫DATA_DIR: הנתיב לספריית המארח שבה מאוחסנים הנתונים.
  6. אפשר להשתמש בסימן ausearch כדי לקבל מידע על דרישות ההרשאה הנוספות.
    sudo ausearch -c 'postgres' --raw > postgres.avc
  7. יוצרים פרופיל אבטחה של SELinux על סמך המידע על קונטיינר AlloyDB Omni והרשאת ausearch.
    podman inspect CONTAINER_NAME | sudo udica --append-rules postgres.avc CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  8. טוענים את מודול SELinux.
    sudo semodule -i CONTAINER_NAME.cil /usr/share/udica/templates/{base_container.cil,net_container.cil}
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור הקונטיינר. לדוגמה, my-omni-1.
  9. הפעלה של mmap.
    sudo setsebool -P domain_can_mmap_files 1
  10. עוצרים ומסירים את הקונטיינר של AlloyDB Omni.
    podman stop CONTAINER_NAME && docker rm CONTAINER_NAME
    מחליפים את המשתנה הבא:
    • ‫CONTAINER_NAME: השם שנתתם לקונטיינר. לדוגמה, my-omni-1.
  11. מגדירים את המצב של SELinux ל-enforcing.
    sudo setenforce 1
  12. יוצרים מחדש את מאגר AlloyDB Omni.
    podman run -d --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    -v DATA_DIR:/var/lib/postgresql/data \
    -p HOST_PORT:5432 \
    --restart=always \
    --security-opt label=type:CONTAINER_NAME.process \
    docker.io/google/alloydbomni:IMAGE_TAG
    
    מחליפים את המשתנים הבאים:
    • ‫CONTAINER_NAME: השם שבו השתמשתם עבור מאגר התגים. לדוגמה, my-omni-1.
    • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
    • ‫DATA_DIR: נתיב ספריית המארח שבה הנתונים מאוחסנים.
    • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במכונת המארח, מציינים 5432.
    • ‫IMAGE_TAG: משתמשים ב-17.5.0 בשביל קובץ האימג' האחרון של Debian, או ב-17.5.0-ubi9 בשביל קובץ האימג' האחרון של UBI.

הפעלת ulimits

הפרמטרים של ulimit מציינים מגבלות על תהליכים שקונטיינר Docker או Podman יכול להשתמש בהן. כדי ליהנות מביצועים אופטימליים, מומלץ להגדיר את הערכים הבאים של ulimit:

  • ‫nice=-20:-20: AlloyDB Omni משנה את סדרי העדיפויות של התהליכים כדי לאפשר לתהליכי PostgreSQL קריטיים לפעול בעדיפות גבוהה יותר. העדיפות הגבוהה יותר נותנת לתהליכים הקצאה גדולה יותר של מעבדים זמינים. כדי לשנות את סדרי העדיפויות של התהליכים, מציינים את הערך --ulimit=nice=-20:-20, שמסיר את המגבלות על מאגר AlloyDB Omni.

  • ‫memlock=-1:-1: ב-AlloyDB Omni מתבצע ניהול זיכרון אוטומטי. ההגדרה --ulimit=memlock=-1:-1 מאפשרת למסד הנתונים לשלוט טוב יותר באופן ההחלפה של דפי הזיכרון, מה שיכול לשפר את הביצועים.

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--ulimit=nice=-20:-20 --ulimit=memlock=-1:-1 \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

מחליפים את המשתנים הבאים:

  • ‫CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה, my-omni-1.
  • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
  • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL גם במחשב המארח, מציינים את 5432.
  • ‫IMAGE_TAG: משתמשים ב-AlloyDB Omni לתמונת Debian העדכנית או ב-AlloyDB Omni-ubi לתמונת UBI העדכנית.

ציון מנהל התקן לרישום ביומן

כברירת מחדל, Docker ו-Podman לא מבצעים החלפת יומנים. הפעולה הזו עלולה לתפוס הרבה מקום בדיסק, ובסופו של דבר לגרום לניצול מלא של נפח האחסון בדיסק. כדי להשתמש במנהל התקן אחר לרישום ביומן, אפשר לציין את השדה --log-driver. לדוגמה, כדי להיכנס ל-journald:

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--log-driver=journald \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

מחליפים את המשתנים הבאים:

  • ‫CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה, my-omni-1.
  • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
  • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL גם במחשב המארח, מציינים את 5432.
  • ‫IMAGE_TAG: משתמשים ב-17.5.0 בשביל קובץ האימג' העדכני של Debian, או ב-17.5.0-ubi בשביל קובץ האימג' העדכני של UBI.

למידע נוסף על מנהלי התקנים לרישום ביומן, קראו את המאמר הגדרת מנהלי התקנים לרישום ביומן של Docker ואת המאמר podman-run של Podman.

טעינת אמצעי אחסון של זיכרון משותף

אם אתם מתכננים להשתמש במנוע מבוסס-העמודות של AlloyDB עם AlloyDB Omni, מומלץ להקצות זיכרון משותף לקונטיינר של AlloyDB Omni. השיטה לביצוע הפעולה משתנה בהתאם למערכת ההפעלה המארחת, כפי שמוצג בדוגמאות הבאות.

Linux

כדי שהזיכרון המשותף יהיה זמין לקונטיינר, צריך לטעון את /dev/shm:

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
-v /dev/shm:/dev/shm \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

מחליפים את המשתנים הבאים:

  • ‫CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה, my-omni-1.
  • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
  • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL גם במחשב המארח, מציינים את 5432.
  • ‫IMAGE_TAG: משתמשים ב-17.5.0 לתמונת Debian העדכנית או ב-17.5.0-ubi לתמונת UBI העדכנית.

macOS

כדי שהזיכרון המשותף יהיה זמין לקונטיינר, צריך לכלול את הדגל --shm-size:

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Docker

docker run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

Podman

podman run -d --name CONTAINER_NAME \
-e POSTGRES_PASSWORD=NEW_PASSWORD \
--shm-size=SHARED_MEMORY_SIZE \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:IMAGE_TAG

מחליפים את המשתנים הבאים:

  • ‫CONTAINER_NAME: השם שנתתם למאגר התגים. לדוגמה, my-omni-1.
  • ‫NEW_PASSWORD: הסיסמה שהוקצתה למשתמש postgres של הקונטיינר החדש אחרי שהוא נוצר.
  • ‫SHARED_MEMORY_SIZE: הגודל שצריך להגדיר ל-/dev/shm בקונטיינר, בפורמט שמתואר במאמר הפעלת קונטיינרים. לדוגמה, כדי לציין גיגה-בייט אחד, משתמשים בערך 1g.
  • ‫HOST_PORT: יציאת TCP במחשב המארח שאליה הקונטיינר צריך לפרסם את היציאה שלו 5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL במחשב המארח, מציינים 5432.
  • ‫IMAGE_TAG: משתמשים ב-17.5.0 בשביל קובץ האימג' העדכני של Debian או ב-17.5.0-ubi בשביל קובץ האימג' העדכני של UBI.

מומלץ להגדיר את גודל הזיכרון המשותף למספר מגה-בייט ששווה לפחות לערך של מסד הנתונים שלכם של הדגל google_job_scheduler.max_parallel_workers_per_job כפול 250. מידע נוסף על מנוע מבוסס-עמודות זמין במאמר בנושא הגדרת מנוע מבוסס-עמודות ב-AlloyDB Omni.

לדוגמה, אם הדגל לניהול מסד הנתונים google_job_scheduler.max_parallel_workers_per_job מוגדר לערך ברירת המחדל 2, כדאי להוסיף דגל של --shm-size=500m או יותר כשמפעילים את שרת מסד הנתונים.

מידע נוסף על הדגל --shm-size זמין במאמר הפעלת קונטיינרים.

הפעלת תוספים

רשימת התוספים שזמינים ב-AlloyDB Omni מופיעה במאמר תוספי מסדי נתונים נתמכים. ‫AlloyDB Omni לא כולל את PostGIS ו-Orafce, אבל אפשר להתקין את שניהם לפי ההוראות הבאות:

התוספים המותקנים מופעלים באמצעות הצהרות CREATE EXTENSION סטנדרטיות של PostgreSQL, כפי שמפורט בקטע הפעלת תוסף.