Skip to content

💾 儲存與輔助元件測驗

1. 在 KubeVirt 中,DataVolume 資源由哪個元件負責管理和填充?

  • A. virt-controller
  • B. virt-handler
  • C. CDI(Containerized Data Importer)
  • D. virt-operator

2. DataVolume spec.source.http 匯入來源的 URL 若指向一個 .qcow2 檔案,CDI 會如何處理磁碟格式?

  • A. 直接將 .qcow2 檔案寫入 PVC,不做任何轉換
  • B. CDI importer 自動將 .qcow2 轉換為 raw 格式後寫入 PVC
  • C. CDI 不支援 .qcow2 格式,需先手動轉換
  • D. CDI 依照 StorageClass 決定是否轉換格式

3. DataVolume 的 Phase 達到 Succeeded 代表什麼?

  • A. DataVolume 已成功綁定到 PVC(資料可能尚未完整)
  • B. 資料匯入/填充完成,PVC 已可供 VM 使用
  • C. VM 已成功掛載此 DataVolume
  • D. DataVolume 的備份快照已建立

4. 以下哪個 DataVolume source 類型允許從叢集內另一個 Namespace 複製 PVC?

  • A. sourceRef
  • B. pvc(使用 namespace/name 指定)
  • C. clone
  • D. http

5. Containerized Data Importer(CDI)的 cdi-uploadproxy Service 的用途是什麼?

  • A. 將 VM 磁碟匯出到外部儲存系統
  • B. 接收 virtctl image-upload 指令的本地檔案上傳,轉發給 importer Pod
  • C. 提供 CDI Web UI 讓管理員監控匯入進度
  • D. 管理 CDI 元件間的內部 API 通訊

6. ContainerDisk 的 Volume 底層資料是如何傳遞給 QEMU 進程的?

  • A. 直接作為 Block Device 掛載到 QEMU
  • B. OCI 映像由 virt-launcher 的 init container 解壓,以臨時 disk.img 檔案透過 hostPath 共享給 QEMU
  • C. 透過 CSI Driver 動態建立一個臨時 PVC
  • D. 透過 Docker Registry API 直接串流到 QEMU

7. Hotplug Volume 功能要求 VM 滿足哪個先決條件?

  • A. VM 必須使用 EFI 韌體
  • B. VM 必須安裝 QEMU Guest Agent(qemu-guest-agent)
  • C. StorageClass 必須支援 ReadWriteMany
  • D. VM 必須已啟用 CPU Pinning

8. 執行 virtctl addvolume 後,新的磁碟在 VM 中的設備名稱(如 vdb)由什麼決定?

  • A. virtctl addvolume 指令的 --device-name 參數
  • B. VM YAML 中預先定義的磁碟名稱清單
  • C. QEMU virtio-blk 或 virtio-scsi 控制器按順序分配,通常是第一個可用名稱
  • D. CDI DataVolume 的名稱直接對應到設備名稱

9. 在 KubeVirt 中,VM 的記憶體 Balloon Device(virtio-balloon)的作用是什麼?

  • A. 動態調整 VM 的 CPU 資源分配
  • B. 允許 Hypervisor 動態回收 VM 部分記憶體,在主機記憶體不足時優化整體利用率
  • C. Balloon Device 已棄用,建議使用 Memory Hotplug
  • D. 提供 VM 記憶體使用率監控的 Metrics

10. KubeVirt 中的 Hook Sidecar 設計模式解決什麼問題?

  • A. 讓 VM 可以在不同 Namespace 之間遷移
  • B. 允許在不修改 KubeVirt 核心程式碼的情況下,透過外掛程式方式客製化 VMI XML 或生命週期 Hook
  • C. 提供 VM 的監控和日誌收集能力
  • D. 讓 virt-handler 可以並行處理更多 VMI

11. 在 KubeVirt VM 中使用 HugePages 的主要效益是什麼?

  • A. 提升 VM 磁碟 I/O 效能
  • B. 減少 TLB(Translation Lookaside Buffer)未命中,降低記憶體存取延遲,提升記憶體密集型工作負載的效能
  • C. 允許 VM 使用超過節點實體記憶體的虛擬記憶體
  • D. HugePages 讓 VM 可以使用 NUMA 架構

12. 在 VMI spec 中設定使用 1Gi HugePages 的正確欄位路徑是?

  • A. spec.domain.memory.hugePages.pageSize: 1Gi
  • B. spec.domain.memory.hugepages.pageSize: 1Gi
  • C. spec.domain.resources.hugepages-1Gi: 4Gi
  • D. spec.nodeSelector: hugepages.kubernetes.io/1Gi: 1

13. 在 KubeVirt 中使用 GPU Passthrough,需要在節點和叢集設定哪些主要元件?

  • A. 只需在 VMI spec.domain.devices.gpus 中設定,Kubernetes 自動處理
  • B. 需要:IOMMU 啟用、VFIO 驅動、GPU 設備插件(如 NVIDIA GPU Operator 或 kubevirt-gpu-plugin),以及在 VMI spec 中宣告 GPU 資源
  • C. 只需啟用 NVIDIA Driver,在 VMI 中指定 GPU model 即可
  • D. 使用 SR-IOV Operator 即可完成 GPU Passthrough,不需要 VFIO

14. virt-exportserver 和 VirtualMachineExport 資源的用途是什麼?

  • A. 用於 VM Live Migration 的資料傳輸通道
  • B. 提供 REST API 讓使用者可以匯出 VM 磁碟映像(PVC 資料)到外部系統
  • C. 將 VM 的設定匯出為 OVF/OVA 格式
  • D. 用於 KubeVirt 元件間的磁碟資料同步

15. 在 StorageProfile 資源中,KubeVirt 和 CDI 使用它來解決什麼問題?

  • A. 定義不同 StorageClass 的計費策略
  • B. 自動為 DataVolume/PVC 選擇最適合的 Access Mode 和 Volume Mode,避免使用者錯誤設定
  • C. 管理儲存配額(Storage Quota)
  • D. 定義 Snapshot 策略和保留期限

16. DataVolumeSource pvc 和 DataVolumeSource snapshot 的主要區別是什麼?

  • A. 兩者都一樣,只是語法不同
  • B. pvc source 從現有 PVC 複製完整資料;snapshot source 從 VolumeSnapshot 還原,通常由 CSI 快速 Clone 完成,效率更高
  • C. snapshot source 需要 VM 停止,pvc source 可以在線上複製
  • D. snapshot source 只支援 Block Volume,pvc source 支援 Filesystem

17. 若要讓同一個磁碟映像同時供多個 VM 唯讀使用,應該使用哪種 Access Mode?

  • A. ReadWriteOnce(RWO)
  • B. ReadWriteMany(RWX)
  • C. ReadOnlyMany(ROX)
  • D. ReadWriteOncePod(RWOP)

18. CDI Smart Clone 使用哪種機制來加速 PVC 複製?

  • A. 將 PVC 資料壓縮後透過網路快速傳輸
  • B. 使用 CSI VolumeSnapshot 快速 Clone,利用儲存後端的 Copy-on-Write 機制,幾乎零資料複製
  • C. 在後端儲存系統直接複製 Block Device,繞過 Kubernetes API
  • D. Smart Clone 使用 DRBD 同步複製技術

19. 在 VMI spec 中,disk 的 bus 類型設為 virtio 與 sata 相比,哪個效能更好且為何?

  • A. sata 效能更好,因為是業界標準協議,驅動最成熟
  • B. virtio 效能更好,因為是為虛擬化設計的半虛擬化協議,Host-Guest 通訊開銷更低
  • C. 兩者效能相同,只是設備名稱不同(vda vs sda)
  • D. virtio 僅在 Linux Guest 上效能更好,Windows Guest 必須使用 sata

20. 在 VM spec 中,哪個欄位允許從 ConfigMap 或 Secret 資源注入 Cloud-Init 配置?

  • A. spec.volumes[].cloudInitNoCloud.userData 直接內嵌 YAML
  • B. spec.volumes[].cloudInitConfigDrive.secretRef 和 spec.volumes[].cloudInitConfigDrive.networkDataSecretRef
  • C. spec.volumes[].cloudInitNoCloud.userDataSecretRef(引用 Secret 的 userdata 欄位)
  • D. spec.domain.devices.cloudInit.configMapRef

21. Live Migration 過程中,VM 的 PVC 需要支援哪種 Access Mode?

  • A. 只要 ReadWriteOnce(RWO)即可,Migration 自動處理
  • B. 需要 ReadWriteMany(RWX),允許來源和目標節點同時掛載同一 PVC
  • C. Migration 期間 PVC 不需要同時掛載,所以 RWO 即可
  • D. 只支援使用 containerDisk 的 VM,PVC 不支援 Migration

22. CDI 的 DataVolumeTemplateBound Feature Gate 的作用是什麼?

  • A. 允許 DataVolumeTemplates 在 VM 建立前預先填充磁碟
  • B. 確保 VM 等待所有 dataVolumeTemplates 完成後才啟動(WaitForFirstConsumer 語義)
  • C. 允許多個 VM 共享同一個 DataVolumeTemplate
  • D. 功能 Gate 不存在,CDI 自動處理 DataVolume 綁定

23. 在 KubeVirt 中,如何讓 VM 使用節點本地儲存(Local Storage)同時支援 Live Migration?

  • A. 本地儲存(Local Storage)本質上不支援 Live Migration,必須改用網路儲存
  • B. 使用 CDI 的 Hotplug 功能在 Migration 前先掛載網路儲存,Migration 後卸除本地磁碟
  • C. 使用 ReadWriteOncePod(RWOP)Access Mode 即可支援
  • D. 本地儲存的 VM 可以 Migration,只是 Migration 後 PVC 會在目標節點重新建立(資料不遷移)

24. 若要讓 DataVolume 從受密碼保護的 HTTP URL 下載映像,需要怎麼設定?

  • A. 直接在 URL 中嵌入 http://user:password@server/image.qcow2
  • B. 在 DataVolume spec.source.http 中指定 secretRef,對應 Secret 包含 accessKeyId 和 secretKey
  • C. 只能使用無密碼的公開 URL
  • D. 使用 DataVolume spec.source.s3 而非 http 來支援認證

25. VMI spec.domain.resources.requests 和 spec.domain.resources.limits 的設定對 Kubernetes Pod QoS 有什麼影響?

  • A. KubeVirt VM 不受 Kubernetes QoS 影響,有獨立的資源管理機制
  • B. 若 requests == limits,virt-launcher Pod 為 Guaranteed QoS,可提高穩定性和 CPU Manager 相容性
  • C. KubeVirt 強制所有 virt-launcher Pod 為 BestEffort QoS
  • D. 只有使用 Instancetype 才能設定 QoS 等級

26. 在 KubeVirt 中,Emulated TPM(vTPM)的用途是什麼?

  • A. 提升 VM 的效能,減少記憶體延遲
  • B. 模擬 TPM 2.0 晶片,讓 Windows 11 等需要 TPM 的 OS 可以安裝和啟動
  • C. 提供 VM 間的安全通訊加密通道
  • D. vTPM 是實體 TPM 的替代品,提供等同的安全等級

27. 在 KubeVirt 中設定 NUMA 拓撲(numaTopologyPolicy)的主要目的是什麼?

  • A. 讓 VM 可以跨多個節點分散記憶體
  • B. 確保 VM 的 vCPU 和記憶體分配在相同的 NUMA 節點,最大化記憶體存取效能,降低遠端記憶體存取延遲
  • C. NUMA 設定允許 VM 使用比節點更多的記憶體(記憶體超售)
  • D. 讓 KubeVirt 自動平衡不同 NUMA 節點上的 VM 分佈

28. 以下哪個欄位讓 VMI 磁碟以 Block Device 模式掛載(而非 Filesystem 模式)?

  • A. spec.domain.devices.disks[].disk.blockDevice: true
  • B. spec.volumes[].persistentVolumeClaim.hotpluggable: true
  • C. spec.domain.devices.disks[].disk.io: native(Block Device 需此設定)
  • D. spec.volumes[].persistentVolumeClaim.claimName 加上 PVC volumeMode: Block

29. CDI Preallocation 功能(spec.preallocation: true in DataVolume)的作用是什麼?

  • A. 預先下載磁碟映像到節點快取,加速 VM 啟動
  • B. 在填充 DataVolume 時預先分配完整的磁碟空間,避免 thin provisioning 導致的延遲
  • C. 預先建立 VolumeSnapshot 以加速 Clone 操作
  • D. 預先分配 VM 的 CPU 和記憶體資源

30. 在 KubeVirt 中,VIRTIOFS(virtio-fs)允許 VM 掛載什麼類型的資源?

  • A. 允許 VM 直接掛載 S3 物件儲存為本地目錄
  • B. 允許 VM 掛載 Host(virt-launcher Pod)的目錄,透過共享記憶體(DAX)高效存取
  • C. VIRTIOFS 是 virtio-scsi 的替代協議,用於提升磁碟效能
  • D. 允許多個 VM 共享同一個目錄,實現 VM 間的快速資料交換

基於 Apache 2.0 授權