Buat dan pasang disk non-boot ke virtual machine (VM) Anda menggunakan petunjuk di halaman ini.
Sebelum memulai
Untuk menggunakan perintah antarmuka command line (CLI) gdcloud
, pastikan Anda telah mendownload, menginstal,
dan mengonfigurasi CLI gdcloud
.
Semua perintah untuk Distributed Cloud menggunakan CLI gdcloud
atau
kubectl
, dan memerlukan lingkungan sistem operasi (OS).
Mendapatkan jalur file kubeconfig
Untuk menjalankan perintah terhadap server Management API, pastikan Anda memiliki resource berikut:
Login dan buat file kubeconfig untuk server Management API jika Anda belum memilikinya.
Gunakan jalur ke file kubeconfig server Management API untuk menggantikan
MANAGEMENT_API_SERVER
dalam petunjuk ini.
Meminta izin dan akses
Untuk melakukan tugas yang tercantum di halaman ini, Anda harus memiliki peran Project VirtualMachine Admin. Ikuti langkah-langkah untuk
memverifikasi
bahwa Anda memiliki peran Project VirtualMachine Admin (project-vm-admin
) di namespace
project tempat VM berada.
Untuk operasi VM menggunakan konsol GDC atau gdcloud CLI, minta Admin IAM Project Anda untuk memberi Anda peran Project VirtualMachine Admin dan peran Project Viewer (project-viewer
).
Memasang disk ke VM
Buat dan pasang disk non-boot ke VM Anda. Setiap disk tambahan dapat menentukan image kustom atau disk kosong. Anda dapat menambahkan beberapa disk sekaligus ke VM.
Konsol
Di menu navigasi, klik Virtual Machines > Instances.
Dalam daftar VM, klik nama VM untuk melihat detailnya.
Klik Add new disk.
Pada dialog konfirmasi, klik Stop untuk menghentikan VM.
Tunggu beberapa menit hingga VM berhenti.
Klik Muat ulang.
Saat VM dalam status dihentikan, klik Tambahkan disk baru lagi.
Dalam dialog Tambahkan disk, pilih disk baru atau disk yang ada.
Untuk menyediakan disk baru, klik tab New disk.
- Di kolom Disk name, masukkan nama disk baru yang unik untuk project.
- Di kolom Size, masukkan ukuran disk antara 10 dan 65536 GiB. Misalnya, 10 GiB.
- Di bagian Deletion rule, klik Keep disk atau Delete disk.
Untuk memilih disk yang ada, klik tab Existing disk.
- Dalam daftar Disk, pilih disk.
- Di bagian Aturan penghapusan, klik Pertahankan disk atau Hapus disk.
Klik Simpan. Disk akan muncul di daftar disk untuk VM.
API
Buat
VirtualMachineDisk
:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineDisk metadata: name: NON_BOOT_BLANK_DISK spec: size: NON_BOOT_BLANK_DISK_SIZE EOF
Tambahkan
VirtualMachineDisk
keVirtualMachine
spec.disks
yang ada:kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAME
Edit yang berikut di editor teks Anda:
... disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: true - virtualMachineDiskRef: name: NON_BOOT_BLANK_DISK autoDelete: false ...
Ganti variabel menggunakan definisi berikut.
Variabel Definisi MANAGEMENT_API_SERVER
File kubeconfig server Management API. PROJECT
Project Google Distributed Cloud dengan air gap (GDC) tempat VM akan dibuat. VM_NAME
Nama VM baru. VM_BOOT_DISK_NAME
Nama boot disk VM baru. NON_BOOT_BLANK_DISK
Nama disk tambahan Anda. NON_BOOT_BLANK_DISK_SIZE
Ukuran disk tambahan Anda, seperti 20G
.
Memformat dan memasang non-boot disk
Setelah memasang disk ke VM, lakukan langkah-langkah yang diperlukan berikut agar disk dapat diakses dalam VM.
Terhubung ke VM
Memformat disk
Cantumkan disk yang terpasang ke instance Anda berdasarkan nomor seri dan temukan disk yang ingin Anda format dan pasang.
ls -l /dev/disk/by-id/
Contoh output ini menampilkan nama disk sebagai nomor seri:
total 0 lrwxrwxrwx 1 root root 9 Sep 13 23:51 ata-QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0ATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot -> ../../sda lrwxrwxrwx 1 root root 10 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part14 -> ../../sda14 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-boot-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-0QEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-1ATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SATA_QEMU_HARDDISK_agentSADisk -> ../../sdc lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot -> ../../sda lrwxrwxrwx 1 root root 10 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part1 -> ../../sda1 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part14 -> ../../sda14 lrwxrwxrwx 1 root root 11 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-boot-part15 -> ../../sda15 lrwxrwxrwx 1 root root 9 Sep 13 23:51 scsi-SQEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb
Informasi yang mengikuti panah,
->
, di setiap baris menunjukkan nama perangkat disk. Misalnya, discsi-SQEMU_QEMU_HARDDISK_vm-disk-data -> ../../sdb
, nomor serinya adalahscsi-SQEMU_QEMU_HARDDISK_vm-disk-data
dan nama perangkat adalahsdb
.Identifikasi nomor seri disk Anda dari daftar ini.
Perilaku fitur situasional penting yang dapat memengaruhi daftar nomor seri:
- Jika nilai
virtualMachineDiskRef.name
lebih panjang dari 20 karakter, hanya 20 karakter pertama yang digunakan sebagai nomor seri. - Jika ada dua disk dengan 20 karakter pertama yang sama, hanya disk pertama yang memiliki nomor seri.
- Jika nilai
Format disk:
sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/DISK_ID
- Ganti
DISK_ID
dengan nomor seri disk yang sedang Anda format. - Untuk contoh ini, tetapkan
scsi-SQEMU_QEMU_HARDDISK_vm-disk-data
untuk memformat seluruh disk tanpa tabel partisi.
Untuk memaksimalkan performa disk, gunakan opsi pemformatan yang direkomendasikan di flag -E
. Karena Anda tidak perlu mencadangkan ruang untuk volume root di disk sekunder, tetapkan -m 0
untuk menggunakan semua kapasitas disk yang tersedia.
Memasang disk
Buat direktori yang berfungsi sebagai direktori pemasangan disk baru. Anda dapat menggunakan direktori apa pun. Contoh berikut membuat direktori di
/mnt/disks/
:sudo mkdir -p /mnt/disks/MOUNT_DIR
Ganti
MOUNT_DIR
dengan direktori tempat Anda ingin memasang disk.Pasang disk ke instance, dan aktifkan opsi hapus:
sudo mount -o discard,defaults /dev/disk/by-id/DISK_ID /mnt/disks/MOUNT_DIR
Ganti kode berikut:
DISK_ID
dengan nomor seri disk yang akan di-mount.MOUNT_DIR
dengan direktori tempat Anda ingin memasang disk.
Opsional: Konfigurasikan izin baca dan tulis pada disk. Perintah berikut memberikan akses tulis,
a+w
, ke disk untuk semua pengguna.sudo chmod a+w /mnt/disks/MOUNT_DIR
Opsional: Mengonfigurasi pemasangan otomatis saat VM dimulai ulang - Menggunakan ID unik universal (UUID) atau skrip startup.
Mengonfigurasi pemasangan otomatis saat VM dimulai ulang - UUID disk
Tambahkan disk ke file /etc/fstab
Anda agar disk otomatis dipasang
lagi saat VM dimulai ulang. Di sistem operasi (OS), nama perangkat berubah setiap kali perangkat dimulai ulang, tetapi UUID perangkat selalu mengarah ke volume yang sama, bahkan saat Anda memindahkan disk antar sistem. Oleh karena itu, selalu gunakan UUID perangkat
untuk mengonfigurasi pemasangan otomatis saat VM dimulai ulang.
Buat cadangan file
/etc/fstab
saat ini:sudo cp /etc/fstab /etc/fstab.backup
Mencantumkan UUID untuk disk:
sudo blkid /dev/DEVICE_NAME
Contoh output menunjukkan UUID
accc19c5-d0d6-4157-9672-37d4e1d48eb5
untuk disk/dev/sdb: UUID="accc19c5-d0d6-4157-9672-37d4e1d48eb5" TYPE="ext4"
DEVICE_NAME
adalah nama perangkat disk yang ingin Anda pasang secara otomatis. Jika Anda membuat tabel partisi di disk, tentukan partisi yang ingin dipasang sebagai akhiran ke nama perangkat. Misalnya, jikasdb
adalah nama perangkat disk, dan Anda ingin memasang partisi 1,DEVICE_NAME
akan menjadisdb1
.Buka file
/etc/fstab
di editor teks, lalu buat entri yang menyertakan UUID:UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
Ganti kode berikut:
UUID_VALUE
denganUUID
disk, yang tercantum sebagai output dari perintah List the UUID.MOUNT_DIR
dengan direktori tempat Anda memasang disk.MOUNT_OPTION
dengan nilaiMOUNT_OPTION
untuk OS Anda, yang menentukan tindakan yang dilakukan OS jika tidak dapat memasang disk saat booting.
Pastikan entri
/etc/fstab
Anda sudah benar:cat /etc/fstab
Berikut adalah contoh output:
LABEL=cloudimg-rootfs / ext4 defaults 0 1 LABEL=UEFI /boot/efi vfat umask=0077 0 1 UUID=UUID_VALUE /mnt/disks/MOUNT_DIR ext4 discard,defaults,MOUNT_OPTION 0 2
Jika Anda melepaskan disk ini atau membuat snapshot dari boot disk untuk VM ini,
edit file /etc/fstab
dan hapus entri untuk disk ini. Meskipun Anda telah
menetapkan MOUNT_OPTION
ke nofail
atau nobootwait
, pastikan file /etc/fstab
tetap sinkron dengan perangkat yang terpasang ke VM Anda. Hapus entri ini sebelum Anda membuat snapshot boot disk atau melepaskan disk.
Mengonfigurasi pemasangan otomatis saat VM dimulai ulang - Skrip startup VM
Anda juga dapat menggunakan skrip startup untuk memasang disk pada setiap reboot dengan menambahkan perintah dari Pasang Disk ke skrip startup. Sebelum menambahkan skrip untuk memasang disk, format disk menggunakan perintah dari Memformat disk.
Buat rahasia skrip startup.
cat <<EOF >>mount-disk-script #!/bin/bash mkdir -p /mnt/disks/MOUNT_DIR mount -o discard,defaults /dev/disk/by-id/DISK_ID /mnt/disks/MOUNT_DIR EOF
kubectl create secret -n PROJECT generic VM_NAME-mount-script --from-file=script=mount-disk-script
rm mount-disk-script
Tambahkan skrip startup ke VM.
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog -n PROJECT VM_NAME
Edit
spec.startupScripts
untuk menyertakan nama rahasia.apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: PROJECT spec: … startupScripts: - name: mount-script scriptSecretRef: name: VM_NAME-mount-script
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi skrip startup, lihat.