<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: erfandwi</title>
    <description>The latest articles on Forem by erfandwi (@bisacloud).</description>
    <link>https://forem.com/bisacloud</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3354160%2F9f40df8b-2e4d-4462-801d-a74da4dc79c3.jpg</url>
      <title>Forem: erfandwi</title>
      <link>https://forem.com/bisacloud</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bisacloud"/>
    <language>en</language>
    <item>
      <title>Install Docker</title>
      <dc:creator>erfandwi</dc:creator>
      <pubDate>Sat, 19 Jul 2025 06:48:36 +0000</pubDate>
      <link>https://forem.com/bisacloud/install-docker-5hh</link>
      <guid>https://forem.com/bisacloud/install-docker-5hh</guid>
      <description>&lt;p&gt;Docker adalah aplikasi yang memudahkan proses pengelolaan proses aplikasi dalam containers.&lt;br&gt;
Containers memungkinkan Anda menjalankan aplikasi dalam proses dan sumber daya yang terisolasi.&lt;br&gt;
Mereka mirip dengan mesin virtual, tetapi kontainer lebih portabel, lebih ramah sumber daya, dan lebih bergantung pada sistem operasi host.&lt;/p&gt;
&lt;h2&gt;
  
  
  Instalasi Docker
&lt;/h2&gt;
&lt;h3&gt;
  
  
  On Debian/Ubuntu systems:
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://get.docker.com | sh
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nt"&gt;--now&lt;/span&gt; docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  On RHEL-based systems (e.g. Rocky Linux 9):
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf config-manager &lt;span class="nt"&gt;--add-repo&lt;/span&gt; https://download.docker.com/linux/centos/docker-ce.repo
&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nt"&gt;--now&lt;/span&gt; docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Menambahkan Pengguna ke Grup Docker
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;groupadd docker 2&amp;gt;/dev/null &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;true
sudo &lt;/span&gt;usermod &lt;span class="nt"&gt;-aG&lt;/span&gt; docker &lt;span class="nv"&gt;$USER&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Catatan:&lt;/strong&gt; Setelah menjalankan perintah di atas, silakan keluar (logout) dan masuk kembali agar perubahan grup pengguna diterapkan.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Cek apakah user sudah masuk ke grup &lt;code&gt;docker&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;groups&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Contoh output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;web1 docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pastikan nama grup &lt;code&gt;docker&lt;/code&gt; muncul dalam daftar grup user Anda.&lt;/p&gt;

&lt;p&gt;Test docker tanpa sudo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jika berhasil, Anda akan melihat pesan:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Hello from Docker!"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jika muncul error permission, cek izin file socket Docker.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt; /var/run/docker.sock
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Contoh output yang benar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;srw-rw---- 1 root docker 0 May 18 14:31 /var/run/docker.sock
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pastikan file tersebut dimiliki oleh user &lt;code&gt;root&lt;/code&gt; dan grup &lt;code&gt;docker&lt;/code&gt;, serta grup memiliki izin baca dan tulis (&lt;code&gt;rw-&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;(Opsional) Mengatur Izin Socket Docker&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ Tidak disarankan untuk lingkungan produksi karena alasan keamanan.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo chmod &lt;/span&gt;666 /var/run/docker.sock
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Perintah Dasar Docker
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Search images
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker search nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Download image
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker pull nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Show images
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Running container
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-it&lt;/span&gt; ubuntu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Perintah ini akan menjalankan container Ubuntu dalam mode interaktif (&lt;code&gt;-it&lt;/code&gt;).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  List containers
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Gunakan opsi &lt;code&gt;-a&lt;/code&gt; untuk melihat semua container, termasuk yang sudah berhenti.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Manage containers
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker start 0596bd489a2d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Gunakan perintah berikut untuk &lt;strong&gt;mengelola container&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;docker start &amp;lt;container_id&amp;gt;&lt;/code&gt; ΓÇö Menjalankan container&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;docker stop &amp;lt;container_id&amp;gt;&lt;/code&gt; ΓÇö Menghentikan container&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;docker restart &amp;lt;container_id&amp;gt;&lt;/code&gt; ΓÇö Me-restart container&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Inspect containers
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker inspect 0596bd489a2d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Menampilkan Informasi Tertentu dari Semua Container&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker inspect &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="s1"&gt;'{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;docker ps &lt;span class="nt"&gt;-aq&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Perintah di atas menampilkan nama dan alamat IP masing-masing container.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Docker Compose
&lt;/h3&gt;

&lt;p&gt;Berikut adalah contoh file &lt;code&gt;docker-compose.yml&lt;/code&gt; dengan opsi &lt;code&gt;pull_policy&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;app_always&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nginx:latest&lt;/span&gt;
    &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;update_config&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;failure_action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;rollback&lt;/span&gt;
      &lt;span class="na"&gt;rollback_config&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;failure_action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;continue&lt;/span&gt;
    &lt;span class="na"&gt;pull_policy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;always&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pada contoh di atas, opsi &lt;code&gt;pull_policy&lt;/code&gt; menentukan bagaimana Docker menangani penarikan (pull) image dari registry. Nilai yang dapat digunakan antara lain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;always&lt;/code&gt;: Selalu menarik (pull) image dari registry, meskipun sudah tersedia secara lokal.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;missing&lt;/code&gt;: Menarik image hanya jika image tersebut tidak tersedia di sistem lokal.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;never&lt;/code&gt;: Tidak akan menarik image dari registry; hanya menggunakan image yang sudah ada secara lokal.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Catatan: &lt;code&gt;pull_policy&lt;/code&gt; adalah fitur yang diperkenalkan pada versi Docker Compose v2.20 ke atas. Pastikan Anda menggunakan versi Compose yang mendukung opsi ini.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>docker</category>
      <category>linux</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Memahami Format XML Domain Libvirt</title>
      <dc:creator>erfandwi</dc:creator>
      <pubDate>Mon, 14 Jul 2025 16:27:26 +0000</pubDate>
      <link>https://forem.com/bisacloud/memahami-format-xml-domain-libvirt-3pn5</link>
      <guid>https://forem.com/bisacloud/memahami-format-xml-domain-libvirt-3pn5</guid>
      <description>&lt;p&gt;Dengan memahami format XML Domain pada Libvirt, kita dapat mengerti fungsi dan cara penggunaannya secara tepat, baik untuk implementasi VM di lingkungan devel maupun produksi.&lt;/p&gt;

&lt;h2&gt;
  
  
  MEMORY
&lt;/h2&gt;

&lt;p&gt;Berikut adalah penjelasan mengenai atribut-atribut memori dalam libvirt:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;&lt;code&gt;&amp;lt;memory&amp;gt;&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Jumlah memori maksimum yang dialokasikan untuk mesin virtual (VM) saat dijalankan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unit&lt;/strong&gt;: Default dalam kibibytes (KiB), tetapi bisa diubah (misal: &lt;code&gt;unit='GiB'&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan batas atas memori yang bisa digunakan VM. Jika menggunakan &lt;em&gt;ballooning&lt;/em&gt;, memori aktual (&lt;code&gt;currentMemory&lt;/code&gt;) bisa lebih kecil dari nilai ini.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;&lt;code&gt;&amp;lt;currentMemory&amp;gt;&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Jumlah memori aktual yang dialokasikan ke VM saat boot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Digunakan untuk &lt;em&gt;memory ballooning&lt;/em&gt;. Nilai ini bisa dinaikkan/turunkan secara dinamis (tanpa reboot) hingga batas &lt;code&gt;&amp;lt;memory&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;currentMemory&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'GiB'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/currentMemory&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- VM mulai dengan 2 GiB --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;memory&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'GiB'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/memory&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- Maksimum 4 GiB --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  3. &lt;strong&gt;&lt;code&gt;&amp;lt;hugepages&amp;gt;&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengonfigurasi VM untuk menggunakan &lt;strong&gt;huge pages&lt;/strong&gt; (halaman memori berukuran besar, misal 2MB/1GB).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tujuan&lt;/strong&gt;: Meningkatkan performa dengan mengurangi TLB misses untuk aplikasi yang intensif memori.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cara Kerja&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Host harus dikonfigurasi untuk mendukung huge pages.&lt;/li&gt;
&lt;li&gt;Pada XML libvirt, &lt;code&gt;&amp;lt;hugepages&amp;gt;&lt;/code&gt; didefinisikan di bawah &lt;code&gt;&amp;lt;memoryBacking&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;memoryBacking&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;hugepages&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;page&lt;/span&gt; &lt;span class="na"&gt;size=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'MiB'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/hugepages&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/memoryBacking&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  4. &lt;strong&gt;&lt;code&gt;&amp;lt;maxMemory&amp;gt;&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Batas absolut memori yang bisa dialokasikan ke VM, termasuk memori yang ditambahkan secara &lt;em&gt;hotplug&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Digunakan untuk &lt;em&gt;memory hotplug&lt;/em&gt; (menambah memori saat VM berjalan).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persyaratan&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;VM harus menggunakan arsitektur yang mendukung hotplug (misal: Q35).&lt;/li&gt;
&lt;li&gt;Nilai harus ΓëÑ &lt;code&gt;&amp;lt;memory&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;maxMemory&lt;/span&gt; &lt;span class="na"&gt;slots=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'GiB'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;16&lt;span class="nt"&gt;&amp;lt;/maxMemory&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- Maksimum 16 GiB --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  5. &lt;strong&gt;&lt;code&gt;&amp;lt;maxMemory slots&amp;gt;&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Jumlah slot yang tersedia untuk menambahkan modul memori (&lt;em&gt;DIMM&lt;/em&gt;) secara &lt;em&gt;hotplug&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Setiap penambahan memori menggunakan satu slot. Jika slot habis, tidak bisa menambah memori tanpa menghapus modul terlebih dahulu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;maxMemory&lt;/span&gt; &lt;span class="na"&gt;slots=&lt;/span&gt;&lt;span class="s"&gt;'8'&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'GiB'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;64&lt;span class="nt"&gt;&amp;lt;/maxMemory&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- 8 slot, maks 64 GiB --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  VCPUS
&lt;/h2&gt;

&lt;p&gt;Berikut adalah penjelasan masing-masing atribut terkait VCPU dalam Libvirt:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;&lt;code&gt;cores&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Jumlah &lt;em&gt;core&lt;/em&gt; per &lt;em&gt;socket&lt;/em&gt; dalam topologi CPU virtual. Mengatur bagaimana CPU virtual dibagi menjadi &lt;em&gt;cores&lt;/em&gt; di dalam setiap &lt;em&gt;socket&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Contoh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;   &lt;span class="nt"&gt;&amp;lt;cpu&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;topology&lt;/span&gt; &lt;span class="na"&gt;sockets=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;cores=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt; &lt;span class="na"&gt;threads=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/cpu&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. &lt;strong&gt;&lt;code&gt;cpuset&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Daftar CPU fisik (&lt;em&gt;host CPUs&lt;/em&gt;) yang boleh digunakan oleh vCPU. Digunakan untuk &lt;em&gt;pinning&lt;/em&gt; (mengikat vCPU ke CPU fisik tertentu).&lt;/p&gt;

&lt;p&gt;Contoh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;   &lt;span class="nt"&gt;&amp;lt;vcpu&lt;/span&gt; &lt;span class="na"&gt;cpuset=&lt;/span&gt;&lt;span class="s"&gt;"0-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/vcpu&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. &lt;strong&gt;&lt;code&gt;dies&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Jumlah &lt;em&gt;die&lt;/em&gt; per &lt;em&gt;socket&lt;/em&gt; dalam topologi CPU (untuk CPU modern dengan arsitektur multi-&lt;em&gt;die&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Contoh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;   &lt;span class="nt"&gt;&amp;lt;cpu&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;topology&lt;/span&gt; &lt;span class="na"&gt;sockets=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;dies=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;cores=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt; &lt;span class="na"&gt;threads=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/cpu&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. &lt;strong&gt;&lt;code&gt;maxvcpus&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Jumlah maksimum vCPU yang dapat diaktifkan (untuk keperluan &lt;em&gt;hotplug&lt;/em&gt;). Nilai ini harus ΓëÑ nilai &lt;code&gt;current&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Contoh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;   &lt;span class="nt"&gt;&amp;lt;vcpu&lt;/span&gt; &lt;span class="na"&gt;current=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;maxvcpus=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/vcpu&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. &lt;strong&gt;&lt;code&gt;sockets&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Jumlah &lt;em&gt;socket&lt;/em&gt; CPU virtual. Menentukan bagaimana CPU virtual diorganisasi dalam topologi.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;strong&gt;&lt;code&gt;threads&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Jumlah &lt;em&gt;thread&lt;/em&gt; per &lt;em&gt;core&lt;/em&gt; (misalnya untuk simulasi Hyper-Threading/SMT).&lt;/p&gt;

&lt;h3&gt;
  
  
  7. &lt;strong&gt;&lt;code&gt;vcpu&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Elemen utama untuk mengonfigurasi vCPU. Contoh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;   &lt;span class="nt"&gt;&amp;lt;vcpu&lt;/span&gt; &lt;span class="na"&gt;placement=&lt;/span&gt;&lt;span class="s"&gt;'static'&lt;/span&gt; &lt;span class="na"&gt;current=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/vcpu&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  7. &lt;strong&gt;&lt;code&gt;vcpu.cpuset&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Mengikat vCPU tertentu ke CPU fisik. Biasanya diatur dalam elemen &lt;code&gt;&amp;lt;cputune&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Contoh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;   &lt;span class="nt"&gt;&amp;lt;cputune&amp;gt;&lt;/span&gt;
     &lt;span class="nt"&gt;&amp;lt;vcpupin&lt;/span&gt; &lt;span class="na"&gt;vcpu=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;cpuset=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;/cputune&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  8. &lt;strong&gt;&lt;code&gt;vcpu.current&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Jumlah vCPU yang aktif saat ini (biasanya Γëñ `maxvcpus`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  9. &lt;strong&gt;&lt;code&gt;vcpu.placement&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Strategi penempatan vCPU:
- `static`: Diketatkan ke CPU fisik (default).
- `auto`: Biarkan host menentukan penempatan.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  10. &lt;strong&gt;&lt;code&gt;vcpus&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Elemen induk untuk konfigurasi individual vCPU (misalnya untuk *hotplug*).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  11. &lt;strong&gt;&lt;code&gt;vcpus.vcpu[0-9]*.enabled&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Status aktivasi vCPU tertentu (`yes`/`no`). Contoh:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;```xml
&amp;lt;vcpus&amp;gt;
  &amp;lt;vcpu id='0' enabled='yes'/&amp;gt;
&amp;lt;/vcpus&amp;gt;
```
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  12. &lt;strong&gt;&lt;code&gt;vcpus.vcpu[0-9]*.hotpluggable&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Apakah vCPU dapat di-*hotplug* (ditambahkan/dihapus saat VM berjalan).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  13. &lt;strong&gt;&lt;code&gt;vcpus.vcpu[0-9]*.id&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ID unik vCPU (biasanya angka 0, 1, dst.).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  14. &lt;strong&gt;&lt;code&gt;vcpus.vcpu[0-9]*.order&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Urutan inisialisasi vCPU saat boot (jarang digunakan).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;h3&gt;
  
  
  Contoh XML Lengkap:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;domain&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;vcpu&lt;/span&gt; &lt;span class="na"&gt;placement=&lt;/span&gt;&lt;span class="s"&gt;'static'&lt;/span&gt; &lt;span class="na"&gt;current=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;maxvcpus=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/vcpu&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;cpu&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;topology&lt;/span&gt; &lt;span class="na"&gt;sockets=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;cores=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;threads=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;dies=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/cpu&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;cputune&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;vcpupin&lt;/span&gt; &lt;span class="na"&gt;vcpu=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;cpuset=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;vcpupin&lt;/span&gt; &lt;span class="na"&gt;vcpu=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;cpuset=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/cputune&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;vcpus&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;vcpu&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;enabled=&lt;/span&gt;&lt;span class="s"&gt;'yes'&lt;/span&gt; &lt;span class="na"&gt;hotpluggable=&lt;/span&gt;&lt;span class="s"&gt;'no'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;vcpu&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;enabled=&lt;/span&gt;&lt;span class="s"&gt;'yes'&lt;/span&gt; &lt;span class="na"&gt;hotpluggable=&lt;/span&gt;&lt;span class="s"&gt;'yes'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/vcpus&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/domain&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Catatan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Atribut seperti &lt;code&gt;dies&lt;/code&gt; dan &lt;code&gt;vcpus.vcpu[0-9]*&lt;/code&gt; memerlukan Libvirt versi terbaru dan dukungan hypervisor (misalnya QEMU ΓëÑ 5.0).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Hotplug&lt;/em&gt; vCPU harus didukung oleh OS tamu.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  CPU
&lt;/h2&gt;

&lt;p&gt;Berikut penjelasan arti dari atribut CPU di libvirt:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;&lt;code&gt;cache.level&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan level cache CPU (L1, L2, L3) yang dikonfigurasi untuk guest VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kegunaan&lt;/strong&gt;: Digunakan bersama &lt;code&gt;cache.mode&lt;/code&gt; untuk mengatur bagaimana cache CPU diekspos ke VM. Misal: &lt;code&gt;level='3'&lt;/code&gt; untuk mengatur cache L3.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;&lt;code&gt;cache.mode&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengontrol strategi virtualisasi cache CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai yang Umum&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;passthrough&lt;/code&gt;: Cache host langsung diakses VM (terbatas pada migrasi).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;emulate&lt;/code&gt;: Cache diemulasikan untuk kompatibilitas.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;disable&lt;/code&gt;: Cache tidak tersedia untuk VM.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;cache mode='passthrough' level='3'/&amp;gt;&lt;/code&gt;.&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. &lt;strong&gt;&lt;code&gt;check&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah konfigurasi CPU diverifikasi terhadap kemampuan host.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;none&lt;/code&gt;: Tidak ada pengecekan.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;partial&lt;/code&gt;: Pengecekan dasar (default).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;full&lt;/code&gt;: Pengecekan ketat untuk migrasi.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. &lt;strong&gt;&lt;code&gt;disable&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;forbid&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;force&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Konteks&lt;/strong&gt;: Atribut kebijakan untuk fitur CPU (contoh: &lt;code&gt;&amp;lt;feature policy='disable'/&amp;gt;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;disable&lt;/code&gt;: Menonaktifkan fitur CPU di VM.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;forbid&lt;/code&gt;: Host harus tidak memiliki fitur tersebut (jika ada, VM gagal dijalankan).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;force&lt;/code&gt;: Memaksa fitur diaktifkan, meski host tidak mendukung (risiko crash!).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. &lt;strong&gt;&lt;code&gt;match&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan ketelitian pencocokan model CPU host dengan VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;minimum&lt;/code&gt;: Cocokkan setidaknya fitur dasar.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;exact&lt;/code&gt;: Persis sesuai dengan host (termasuk versi mikro).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;strict&lt;/code&gt;: Cocokkan semua detail CPU (termasuk vendor, topologi).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  6. &lt;strong&gt;&lt;code&gt;migratable&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menunjukkan apakah konfigurasi CPU aman untuk migrasi live.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai&lt;/strong&gt;: &lt;code&gt;on&lt;/code&gt; (default) atau &lt;code&gt;off&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kegunaan&lt;/strong&gt;: Jika &lt;code&gt;off&lt;/code&gt;, konfigurasi mungkin bergantung pada fitur host-spesifik.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  7. &lt;strong&gt;&lt;code&gt;mode&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Strategi virtualisasi CPU secara umum.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;host-passthrough&lt;/code&gt;: Ekspos CPU host langsung ke VM (kinerja maksimal, tidak migrasi).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;host-model&lt;/code&gt;: Tiru model CPU host dengan kompatibilitas migrasi.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;custom&lt;/code&gt;: Gunakan model CPU spesifik (diatur via &lt;code&gt;model&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  8. &lt;strong&gt;&lt;code&gt;model&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Nama model CPU yang diemulasikan untuk VM (misal: &lt;code&gt;Intel Core i7&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;model fallback='allow'&amp;gt;Haswell&amp;lt;/model&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  9. &lt;strong&gt;&lt;code&gt;model.fallback&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Kebijakan jika model CPU tidak didukung host.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;allow&lt;/code&gt;: Gunakan model yang kompatibel terdekat (default).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;forbid&lt;/code&gt;: Gagal jika model tidak tersedia.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  10. &lt;strong&gt;&lt;code&gt;model.vendor_id&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengganti string vendor CPU yang terlihat VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kegunaan&lt;/strong&gt;: Misal: &lt;code&gt;&amp;lt;vendor_id&amp;gt;GenuineIntel&amp;lt;/vendor_id&amp;gt;&lt;/code&gt; untuk menyamar sebagai Intel.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Contoh XML Sederhana:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;cpu&lt;/span&gt; &lt;span class="na"&gt;mode=&lt;/span&gt;&lt;span class="s"&gt;'host-model'&lt;/span&gt; &lt;span class="na"&gt;match=&lt;/span&gt;&lt;span class="s"&gt;'exact'&lt;/span&gt; &lt;span class="na"&gt;check=&lt;/span&gt;&lt;span class="s"&gt;'full'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;model&lt;/span&gt; &lt;span class="na"&gt;fallback=&lt;/span&gt;&lt;span class="s"&gt;'forbid'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Haswell&lt;span class="nt"&gt;&amp;lt;/model&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;feature&lt;/span&gt; &lt;span class="na"&gt;policy=&lt;/span&gt;&lt;span class="s"&gt;'disable'&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'rdrand'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;cache&lt;/span&gt; &lt;span class="na"&gt;mode=&lt;/span&gt;&lt;span class="s"&gt;'passthrough'&lt;/span&gt; &lt;span class="na"&gt;level=&lt;/span&gt;&lt;span class="s"&gt;'3'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/cpu&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Semua atribut ini memengaruhi kinerja, kompatibilitas, dan kemampuan migrasi VM. Konfigurasi yang salah (misal: &lt;code&gt;force&lt;/code&gt; atau &lt;code&gt;host-passthrough&lt;/code&gt;) dapat menyebabkan kegagalan migrasi atau crash VM.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;NUMA Cell Attributes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NUMA cell (atau node) adalah bagian dari arsitektur CPU dan memori yang memengaruhi kinerja VM. Atribut ini mengatur konfigurasi NUMA untuk VM.&lt;/p&gt;

&lt;h3&gt;
  
  
  11. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.cache[0-9]*.associativity&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan asosiativitas cache (cara cache di-mapping ke memori).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: Fully associative, direct-mapped, atau set-associative.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  12. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.cache[0-9]*.level&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Level cache (L1, L2, L3) yang dikonfigurasi untuk NUMA cell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;level='2'&lt;/code&gt; untuk cache L2.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  13. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.cache[0-9]*.line.unit&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Unit ukuran untuk cache line (misal: &lt;code&gt;bytes&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;line unit='bytes' value='64'/&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  14. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.cache[0-9]*.line.value&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Ukuran cache line dalam unit yang ditentukan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;value='64'&lt;/code&gt; untuk cache line 64 byte.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  15. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.cache[0-9]*.policy&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Kebijakan manajemen cache (misal: write-back, write-through).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;policy&amp;gt;write-back&amp;lt;/policy&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  16. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.cache[0-9]*.size.unit&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Unit ukuran untuk total cache size (misal: &lt;code&gt;KB&lt;/code&gt;, &lt;code&gt;MB&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;size unit='MB' value='8'/&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  17. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.cache[0-9]*.size.value&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Ukuran total cache dalam unit yang ditentukan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;value='8'&lt;/code&gt; untuk cache 8 MB.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  18. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.cpus&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Daftar CPU yang termasuk dalam NUMA cell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;cpus&amp;gt;0-3&amp;lt;/cpus&amp;gt;&lt;/code&gt; untuk CPU 0 hingga 3.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  19. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.discard&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah memori NUMA cell dapat di-discard (dibebaskan) saat tidak digunakan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai&lt;/strong&gt;: &lt;code&gt;yes&lt;/code&gt; atau &lt;code&gt;no&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  20. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.distances.sibling[0-9]*.id&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: ID NUMA cell yang merupakan "sibling" (tetangga) dari cell ini.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;sibling id='1' value='20'/&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  21. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.distances.sibling[0-9]*.value&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Jarak relatif (latensi atau bandwidth) antara NUMA cell dan sibling-nya.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;value='20'&lt;/code&gt; menunjukkan jarak relatif.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  22. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.id&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: ID unik untuk NUMA cell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;cell id='0'&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  23. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.memAccess&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan mode akses memori untuk NUMA cell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai&lt;/strong&gt;: &lt;code&gt;shared&lt;/code&gt; (default) atau &lt;code&gt;private&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  24. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.memory&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Jumlah memori yang dialokasikan untuk NUMA cell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;memory unit='MB'&amp;gt;4096&amp;lt;/memory&amp;gt;&lt;/code&gt; untuk 4 GB.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  25. &lt;strong&gt;&lt;code&gt;numa.cell[0-9]*.unit&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Unit ukuran untuk memori NUMA cell (misal: &lt;code&gt;KB&lt;/code&gt;, &lt;code&gt;MB&lt;/code&gt;, &lt;code&gt;GB&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;memory unit='GB'&amp;gt;4&amp;lt;/memory&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;NUMA Interconnect Attributes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Atribut ini mengatur interkoneksi antara NUMA cells, seperti bandwidth dan latensi.&lt;/p&gt;

&lt;h3&gt;
  
  
  26. &lt;strong&gt;&lt;code&gt;numa.interconnects.bandwidth[0-9]*.cache&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah bandwidth interkoneksi di-cache.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai&lt;/strong&gt;: &lt;code&gt;yes&lt;/code&gt; atau &lt;code&gt;no&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  27. &lt;strong&gt;&lt;code&gt;numa.interconnects.bandwidth[0-9]*.initiator&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: ID NUMA cell yang memulai transfer data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;initiator&amp;gt;0&amp;lt;/initiator&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  28. &lt;strong&gt;&lt;code&gt;numa.interconnects.bandwidth[0-9]*.target&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: ID NUMA cell yang menjadi target transfer data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;target&amp;gt;1&amp;lt;/target&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  29. &lt;strong&gt;&lt;code&gt;numa.interconnects.bandwidth[0-9]*.type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Jenis interkoneksi (misal: &lt;code&gt;QPI&lt;/code&gt;, &lt;code&gt;UPI&lt;/code&gt;, &lt;code&gt;PCIe&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;type&amp;gt;QPI&amp;lt;/type&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  30. &lt;strong&gt;&lt;code&gt;numa.interconnects.bandwidth[0-9]*.unit&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Unit ukuran bandwidth (misal: &lt;code&gt;GB/s&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;unit&amp;gt;GB/s&amp;lt;/unit&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  31. &lt;strong&gt;&lt;code&gt;numa.interconnects.bandwidth[0-9]*.value&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Nilai bandwidth dalam unit yang ditentukan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;value&amp;gt;20&amp;lt;/value&amp;gt;&lt;/code&gt; untuk 20 GB/s.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  32. &lt;strong&gt;&lt;code&gt;numa.interconnects.latency[0-9]*.cache&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah latensi interkoneksi di-cache.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nilai&lt;/strong&gt;: &lt;code&gt;yes&lt;/code&gt; atau &lt;code&gt;no&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  33. &lt;strong&gt;&lt;code&gt;numa.interconnects.latency[0-9]*.initiator&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: ID NUMA cell yang memulai transfer data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;initiator&amp;gt;0&amp;lt;/initiator&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  34. &lt;strong&gt;&lt;code&gt;numa.interconnects.latency[0-9]*.target&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: ID NUMA cell yang menjadi target transfer data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;target&amp;gt;1&amp;lt;/target&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  35. &lt;strong&gt;&lt;code&gt;numa.interconnects.latency[0-9]*.type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Jenis interkoneksi (misal: &lt;code&gt;QPI&lt;/code&gt;, &lt;code&gt;UPI&lt;/code&gt;, &lt;code&gt;PCIe&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;type&amp;gt;QPI&amp;lt;/type&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  36. &lt;strong&gt;&lt;code&gt;numa.interconnects.latency[0-9]*.unit&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Unit ukuran latensi (misal: &lt;code&gt;ns&lt;/code&gt; untuk nanosecond).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;unit&amp;gt;ns&amp;lt;/unit&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  37. &lt;strong&gt;&lt;code&gt;numa.interconnects.latency[0-9]*.value&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Nilai latensi dalam unit yang ditentukan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: &lt;code&gt;&amp;lt;value&amp;gt;50&amp;lt;/value&amp;gt;&lt;/code&gt; untuk 50 ns.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Contoh XML NUMA Configuration&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;cpu&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;numa&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;cell&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;cpus=&lt;/span&gt;&lt;span class="s"&gt;'0-3'&lt;/span&gt; &lt;span class="na"&gt;memory=&lt;/span&gt;&lt;span class="s"&gt;'4096'&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'MB'&lt;/span&gt; &lt;span class="na"&gt;memAccess=&lt;/span&gt;&lt;span class="s"&gt;'shared'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;distances&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;sibling&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;'20'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/distances&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;cache&lt;/span&gt; &lt;span class="na"&gt;level=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;associativity=&lt;/span&gt;&lt;span class="s"&gt;'direct'&lt;/span&gt; &lt;span class="na"&gt;size=&lt;/span&gt;&lt;span class="s"&gt;'64'&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'KB'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/cell&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;cell&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;cpus=&lt;/span&gt;&lt;span class="s"&gt;'4-7'&lt;/span&gt; &lt;span class="na"&gt;memory=&lt;/span&gt;&lt;span class="s"&gt;'4096'&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'MB'&lt;/span&gt; &lt;span class="na"&gt;memAccess=&lt;/span&gt;&lt;span class="s"&gt;'shared'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;distances&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;sibling&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;'20'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/distances&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/cell&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/numa&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;interconnects&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;bandwidth&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'QPI'&lt;/span&gt; &lt;span class="na"&gt;initiator=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;'20'&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'GB/s'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;latency&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'QPI'&lt;/span&gt; &lt;span class="na"&gt;initiator=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;'50'&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;'ns'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/interconnects&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/cpu&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Atribut NUMA ini memungkinkan Anda mengoptimalkan kinerja VM dengan mengatur alokasi CPU, memori, cache, dan interkoneksi antar-NUMA cells.&lt;/p&gt;




&lt;h3&gt;
  
  
  38. &lt;strong&gt;&lt;code&gt;optional&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menunjukkan bahwa fitur CPU bersifat opsional. Jika fitur tidak tersedia di host, VM tetap dapat berjalan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Konteks&lt;/strong&gt;: Digunakan dalam elemen &lt;code&gt;&amp;lt;feature&amp;gt;&lt;/code&gt; untuk menentukan kebijakan fitur CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;feature&lt;/span&gt; &lt;span class="na"&gt;policy=&lt;/span&gt;&lt;span class="s"&gt;'optional'&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'avx'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Artinya, fitur AVX opsional dan tidak wajib ada di host.&lt;/p&gt;




&lt;h3&gt;
  
  
  39. &lt;strong&gt;&lt;code&gt;require&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menunjukkan bahwa fitur CPU wajib ada di host. Jika tidak tersedia, VM tidak akan bisa dijalankan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Konteks&lt;/strong&gt;: Digunakan dalam elemen &lt;code&gt;&amp;lt;feature&amp;gt;&lt;/code&gt; untuk menentukan kebijakan fitur CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;feature&lt;/span&gt; &lt;span class="na"&gt;policy=&lt;/span&gt;&lt;span class="s"&gt;'require'&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'sse4.2'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Artinya, fitur SSE4.2 harus ada di host, atau VM tidak akan berjalan.&lt;/p&gt;




&lt;h3&gt;
  
  
  40. &lt;strong&gt;&lt;code&gt;secure&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menunjukkan bahwa fitur CPU terkait dengan keamanan (misal: Intel SGX atau AMD SEV).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Konteks&lt;/strong&gt;: Digunakan untuk memastikan fitur keamanan CPU diaktifkan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;feature&lt;/span&gt; &lt;span class="na"&gt;policy=&lt;/span&gt;&lt;span class="s"&gt;'require'&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'sev'&lt;/span&gt; &lt;span class="na"&gt;secure=&lt;/span&gt;&lt;span class="s"&gt;'yes'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Artinya, fitur AMD SEV harus diaktifkan dan aman.&lt;/p&gt;




&lt;h3&gt;
  
  
  41. &lt;strong&gt;&lt;code&gt;topology.cores&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah core per socket dalam topologi CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Konteks&lt;/strong&gt;: Digunakan dalam elemen &lt;code&gt;&amp;lt;topology&amp;gt;&lt;/code&gt; untuk mengonfigurasi virtual CPU topology.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;topology&lt;/span&gt; &lt;span class="na"&gt;sockets=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;cores=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt; &lt;span class="na"&gt;threads=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Artinya, setiap socket memiliki 4 core.&lt;/p&gt;




&lt;h3&gt;
  
  
  42. &lt;strong&gt;&lt;code&gt;topology.dies&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah dies per socket dalam topologi CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Konteks&lt;/strong&gt;: Digunakan dalam elemen &lt;code&gt;&amp;lt;topology&amp;gt;&lt;/code&gt; untuk arsitektur CPU modern yang memiliki multiple dies per socket.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;topology&lt;/span&gt; &lt;span class="na"&gt;sockets=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;dies=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;cores=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt; &lt;span class="na"&gt;threads=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Artinya, setiap socket memiliki 2 dies, dan setiap die memiliki 4 core.&lt;/p&gt;




&lt;h3&gt;
  
  
  43. &lt;strong&gt;&lt;code&gt;topology.sockets&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah socket CPU dalam topologi virtual.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Konteks&lt;/strong&gt;: Digunakan dalam elemen &lt;code&gt;&amp;lt;topology&amp;gt;&lt;/code&gt; untuk mengonfigurasi virtual CPU topology.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;topology&lt;/span&gt; &lt;span class="na"&gt;sockets=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;cores=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt; &lt;span class="na"&gt;threads=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Artinya, VM memiliki 2 socket CPU.&lt;/p&gt;




&lt;h3&gt;
  
  
  44. &lt;strong&gt;&lt;code&gt;topology.threads&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah thread per core dalam topologi CPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Konteks&lt;/strong&gt;: Digunakan dalam elemen &lt;code&gt;&amp;lt;topology&amp;gt;&lt;/code&gt; untuk mengonfigurasi virtual CPU topology.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;topology&lt;/span&gt; &lt;span class="na"&gt;sockets=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;cores=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt; &lt;span class="na"&gt;threads=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Artinya, setiap core memiliki 2 thread (Hyper-Threading).&lt;/p&gt;




&lt;h3&gt;
  
  
  45. &lt;strong&gt;&lt;code&gt;vendor&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan vendor CPU (misal: Intel, AMD).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Konteks&lt;/strong&gt;: Digunakan dalam elemen &lt;code&gt;&amp;lt;cpu&amp;gt;&lt;/code&gt; untuk menentukan vendor CPU yang diemulasikan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;cpu&lt;/span&gt; &lt;span class="na"&gt;mode=&lt;/span&gt;&lt;span class="s"&gt;'host-model'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;vendor&amp;gt;&lt;/span&gt;Intel&lt;span class="nt"&gt;&amp;lt;/vendor&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;model&amp;gt;&lt;/span&gt;Haswell&lt;span class="nt"&gt;&amp;lt;/model&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/cpu&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Artinya, VM akan menggunakan model CPU Intel Haswell.&lt;/p&gt;

&lt;h2&gt;
  
  
  OS_VARIANT
&lt;/h2&gt;

&lt;p&gt;Berikut adalah penjelasan lebih rinci tentang atribut &lt;code&gt;OS_VARIANT&lt;/code&gt; di libvirt, beserta contoh penggunaannya:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;detect&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Libvirt akan mencoba mendeteksi varian sistem operasi secara otomatis berdasarkan media instalasi (ISO) atau konfigurasi yang diberikan. Ini berguna jika Anda tidak yakin varian OS yang tepat atau ingin libvirt memilih yang paling sesuai.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt; &lt;span class="nt"&gt;&amp;lt;os&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;arch=&lt;/span&gt;&lt;span class="s"&gt;'x86_64'&lt;/span&gt; &lt;span class="na"&gt;machine=&lt;/span&gt;&lt;span class="s"&gt;'pc-i440fx-2.9'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;hvm&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;'cdrom'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;os_variant&lt;/span&gt; &lt;span class="na"&gt;detect=&lt;/span&gt;&lt;span class="s"&gt;'yes'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;/os&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Dalam contoh ini, libvirt akan mencoba mendeteksi varian OS dari media instalasi yang dimasukkan ke dalam &lt;code&gt;cdrom&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;id&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: &lt;code&gt;id&lt;/code&gt; adalah identifier unik yang merujuk pada varian OS tertentu. Ini biasanya berupa string yang sudah didefinisikan dalam database libvirt.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt; &lt;span class="nt"&gt;&amp;lt;os&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;arch=&lt;/span&gt;&lt;span class="s"&gt;'x86_64'&lt;/span&gt; &lt;span class="na"&gt;machine=&lt;/span&gt;&lt;span class="s"&gt;'pc-i440fx-2.9'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;hvm&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;'hd'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;os_variant&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;'rhel8'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;/os&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Di sini, &lt;code&gt;id='rhel8'&lt;/code&gt; menunjukkan bahwa varian OS yang digunakan adalah Red Hat Enterprise Linux 8.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. &lt;strong&gt;name&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: &lt;code&gt;name&lt;/code&gt; adalah nama lengkap atau deskriptif dari varian OS. Ini lebih mudah dibaca dan dipahami oleh manusia.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt; &lt;span class="nt"&gt;&amp;lt;os&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;arch=&lt;/span&gt;&lt;span class="s"&gt;'x86_64'&lt;/span&gt; &lt;span class="na"&gt;machine=&lt;/span&gt;&lt;span class="s"&gt;'pc-i440fx-2.9'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;hvm&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;'hd'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;os_variant&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'Ubuntu 20.04 LTS'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;/os&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Dalam contoh ini, &lt;code&gt;name='Ubuntu 20.04 LTS'&lt;/code&gt; menunjukkan bahwa varian OS yang digunakan adalah Ubuntu 20.04 LTS.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  4. &lt;strong&gt;require&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: &lt;code&gt;require&lt;/code&gt; digunakan untuk memastikan bahwa varian OS tertentu tersedia atau memenuhi persyaratan sebelum proses instalasi atau konfigurasi VM dilanjutkan.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt; &lt;span class="nt"&gt;&amp;lt;os&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;arch=&lt;/span&gt;&lt;span class="s"&gt;'x86_64'&lt;/span&gt; &lt;span class="na"&gt;machine=&lt;/span&gt;&lt;span class="s"&gt;'pc-i440fx-2.9'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;hvm&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;'hd'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;os_variant&lt;/span&gt; &lt;span class="na"&gt;require=&lt;/span&gt;&lt;span class="s"&gt;'rhel8'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
 &lt;span class="nt"&gt;&amp;lt;/os&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Di sini, &lt;code&gt;require='rhel8'&lt;/code&gt; memastikan bahwa varian OS Red Hat Enterprise Linux 8 tersedia sebelum VM dikonfigurasi.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. &lt;strong&gt;short-id&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: &lt;code&gt;short-id&lt;/code&gt; adalah versi singkat dari &lt;code&gt;id&lt;/code&gt; yang digunakan untuk merujuk pada varian OS. Ini biasanya lebih pendek dan lebih mudah digunakan dalam skrip atau konfigurasi otomatis.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  DISK
&lt;/h2&gt;

&lt;p&gt;Berikut penjelasan mengenai atribut disk pada libvirt:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;&lt;code&gt;alias.name&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Memberikan nama unik dan ramah-pengguna untuk perangkat disk di dalam domain VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Memudahkan identifikasi disk saat menggunakan perintah CLI (seperti &lt;code&gt;virsh&lt;/code&gt;), alat debugging, atau API.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;ua-myhdd&lt;/code&gt; untuk merujuk ke disk tertentu.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;alias&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"ua-myhdd"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  2. &lt;strong&gt;&lt;code&gt;backing_format&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Format file/image yang digunakan sebagai &lt;em&gt;backing store&lt;/em&gt; (basis) untuk disk ini.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Menentukan jenis format (seperti &lt;code&gt;qcow2&lt;/code&gt;, &lt;code&gt;raw&lt;/code&gt;) dari file/image yang menjadi dasar disk saat menggunakan &lt;strong&gt;snapshot&lt;/strong&gt; atau &lt;em&gt;thin provisioning&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Libvirt memerlukan informasi ini untuk memastikan rantai backing image terbaca dengan benar.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;backingStore&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;format&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- backing_format --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/base_image.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/backingStore&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  3. &lt;strong&gt;&lt;code&gt;backing_store&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Lokasi path atau sumber dari &lt;em&gt;backing image&lt;/em&gt; (image dasar) yang digunakan oleh disk ini.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Menunjukkan file/image yang menjadi basis untuk disk saat ini (misalnya, dalam skenario snapshot).&lt;/li&gt;
&lt;li&gt;Contoh: Jika disk saat ini adalah overlay, &lt;code&gt;backing_store&lt;/code&gt; merujuk ke image induknya.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;backingStore&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/base_image.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- backing_store --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/backingStore&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  4. &lt;strong&gt;&lt;code&gt;blockio.logical_block_size&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Ukuran blok logis (dalam byte) yang dilihat oleh mesin virtual (VM).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Menentukan ukuran blok yang digunakan oleh sistem operasi guest untuk operasi I/O (misalnya, 512 byte atau 4096 byte).&lt;/li&gt;
&lt;li&gt;Berguna untuk kompatibilitas atau optimasi performa (misalnya, menyamakan dengan sistem file guest).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;blockio&lt;/span&gt; &lt;span class="na"&gt;logical_block_size=&lt;/span&gt;&lt;span class="s"&gt;"512"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  5. &lt;strong&gt;&lt;code&gt;blockio.physical_block_size&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Ukuran blok fisik (dalam byte) pada media penyimpanan &lt;em&gt;host&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Menunjukkan ukuran blok sebenarnya dari penyimpanan fisik (misalnya, 4K untuk SSD modern).&lt;/li&gt;
&lt;li&gt;Jika diatur, libvirt/QEMU akan mencocokkannya dengan penyimpanan host untuk optimalisasi.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;blockio&lt;/span&gt; &lt;span class="na"&gt;physical_block_size=&lt;/span&gt;&lt;span class="s"&gt;"4096"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  6. &lt;strong&gt;&lt;code&gt;boot.loadparm&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Parameter opsional yang diteruskan ke bootloader atau firmware saat booting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Umumnya digunakan untuk mengatur parameter boot spesifik (misalnya, pilih entri di menu GRUB, atau konfigurasi kernel).&lt;/li&gt;
&lt;li&gt;Pada sistem IBM S390, ini bisa menentukan parameter IPL (Initial Program Loader).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;loadparm=&lt;/span&gt;&lt;span class="s"&gt;"kernel=linux"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  7. &lt;strong&gt;&lt;code&gt;boot.order&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Urutan prioritas boot untuk disk ini dibandingkan perangkat lain (misalnya, CD-ROM, NIC).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Menentukan urutan boot: VM akan mencoba boot dari perangkat dengan nilai &lt;code&gt;order&lt;/code&gt; terendah terlebih dahulu.&lt;/li&gt;
&lt;li&gt;Contoh: Jika disk diatur &lt;code&gt;order='1'&lt;/code&gt;, VM akan mencoba boot dari disk ini sebelum perangkat dengan &lt;code&gt;order='2'&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;order=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  8. &lt;strong&gt;&lt;code&gt;driver.ats&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengaktifkan dukungan &lt;strong&gt;Address Translation Services (ATS)&lt;/strong&gt; untuk perangkat disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan dalam lingkungan virtualisasi dengan perangkat PCIe yang mendukung ATS untuk meningkatkan performa I/O dengan mengurangi overhead translasi alamat.&lt;/li&gt;
&lt;li&gt;Biasanya digunakan dengan SR-IOV atau perangkat passthrough.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;ats=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  9. &lt;strong&gt;&lt;code&gt;driver.cache&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengatur mode caching untuk operasi I/O disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Memungkinkan pengaturan caching seperti &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;writethrough&lt;/code&gt;, &lt;code&gt;writeback&lt;/code&gt;, &lt;code&gt;directsync&lt;/code&gt;, atau &lt;code&gt;unsafe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Contoh:&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;writethrough&lt;/code&gt;: Menjamin data ditulis ke penyimpanan fisik sebelum operasi dianggap selesai.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;writeback&lt;/code&gt;: Menyimpan data di cache host terlebih dahulu, meningkatkan performa tetapi berisiko kehilangan data jika host crash.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;cache=&lt;/span&gt;&lt;span class="s"&gt;"writeback"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  10. &lt;strong&gt;&lt;code&gt;driver.copy_on_read&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengaktifkan atau menonaktifkan fitur &lt;strong&gt;copy-on-read&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jika diaktifkan (&lt;code&gt;copy_on_read="on"&lt;/code&gt;), data yang dibaca dari backing image akan disalin ke disk utama (overlay).&lt;/li&gt;
&lt;li&gt;Berguna untuk menghindari pembacaan berulang dari backing image yang lambat.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;copy_on_read=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  11. &lt;strong&gt;&lt;code&gt;driver.detect_zeroes&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengontrol deteksi dan penanganan blok data yang berisi nol (&lt;code&gt;zero blocks&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jika diatur ke &lt;code&gt;on&lt;/code&gt;, blok nol akan dideteksi dan ditulis secara efisien (misalnya, sebagai lubang di file sparse).&lt;/li&gt;
&lt;li&gt;Opsi: &lt;code&gt;off&lt;/code&gt;, &lt;code&gt;on&lt;/code&gt;, atau &lt;code&gt;unmap&lt;/code&gt; (untuk melepaskan blok nol).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;detect_zeroes=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  12. &lt;strong&gt;&lt;code&gt;driver.discard&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengaktifkan dukungan untuk perintah &lt;strong&gt;TRIM/DISCARD&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Memungkinkan sistem operasi guest untuk memberi tahu host tentang blok data yang tidak lagi digunakan, sehingga host dapat mengoptimalkan penyimpanan.&lt;/li&gt;
&lt;li&gt;Opsi: &lt;code&gt;ignore&lt;/code&gt; (default), &lt;code&gt;unmap&lt;/code&gt; (melepaskan blok yang tidak digunakan).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;discard=&lt;/span&gt;&lt;span class="s"&gt;"unmap"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  13. &lt;strong&gt;&lt;code&gt;driver.error_policy&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan kebijakan penanganan kesalahan I/O.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi:&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;stop&lt;/code&gt;: Menghentikan VM jika terjadi kesalahan I/O.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;report&lt;/code&gt;: Melaporkan kesalahan ke guest tanpa menghentikan VM.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ignore&lt;/code&gt;: Mengabaikan kesalahan I/O.&lt;/li&gt;
&lt;li&gt;Berguna untuk mengontrol perilaku VM saat terjadi masalah disk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;error_policy=&lt;/span&gt;&lt;span class="s"&gt;"stop"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  14. &lt;strong&gt;&lt;code&gt;driver.io&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengatur mode I/O untuk disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi:&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;native&lt;/code&gt;: Menggunakan mekanisme I/O default host.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;threads&lt;/code&gt;: Menggunakan thread terpisah untuk operasi I/O.&lt;/li&gt;
&lt;li&gt;Berguna untuk mengoptimalkan performa I/O berdasarkan beban kerja.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Kriteria Pemilihan&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Gunakan &lt;code&gt;io="native"&lt;/code&gt; Jika:&lt;/li&gt;
&lt;li&gt;Kernel host modern (ΓëÑ 2.6.32) dengan dukungan AIO yang baik (misal: Linux ΓëÑ 5.1 dengan &lt;code&gt;io_uring&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Storage backend mendukung AIO.
Contoh: raw block device (LVM, iSCSI), filesystem yang mendukung &lt;code&gt;O_DIRECT&lt;/code&gt; (XFS, ext4), atau format disk &lt;code&gt;qcow2&lt;/code&gt; dengan cache mode &lt;code&gt;none&lt;/code&gt;/&lt;code&gt;directsync&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Workload I/O intensif.
Banyak operasi I/O paralel (misal: database, VM dengan disk aktif).&lt;/li&gt;
&lt;li&gt;Gunakan &lt;code&gt;io="threads"&lt;/code&gt; Jika:&lt;/li&gt;
&lt;li&gt;Kernel host lama (&amp;lt; 2.6.32) atau ada bug pada AIO kernel.&lt;/li&gt;
&lt;li&gt;Storage backend tidak mendukung AIO.
Contoh: filesystem jaringan (NFS versi lama), format disk dengan cache mode &lt;code&gt;writeback&lt;/code&gt;/&lt;code&gt;writethrough&lt;/code&gt;, atau filesystem yang tidak kompatibel dengan &lt;code&gt;O_DIRECT&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Workload I/O kecil atau terfragmentasi.
Threads lebih toleran terhadap operasi I/O acak berskala kecil.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"qemu"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"qcow2"&lt;/span&gt; &lt;span class="na"&gt;cache=&lt;/span&gt;&lt;span class="s"&gt;"none"&lt;/span&gt; &lt;span class="na"&gt;io=&lt;/span&gt;&lt;span class="s"&gt;"native"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;  &lt;span class="c"&gt;&amp;lt;!-- atau io="threads" --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/path/to/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"vda"&lt;/span&gt; &lt;span class="na"&gt;bus=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  15. &lt;strong&gt;&lt;code&gt;driver.iommu&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengaktifkan dukungan &lt;strong&gt;IOMMU&lt;/strong&gt; (Input-Output Memory Management Unit) untuk perangkat disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk isolasi dan manajemen memori yang lebih aman, terutama dalam konfigurasi passthrough.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;iommu=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  16. &lt;strong&gt;&lt;code&gt;driver.iothread&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengaitkan disk dengan &lt;strong&gt;iothread&lt;/strong&gt; tertentu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Memungkinkan operasi I/O disk berjalan di thread terpisah, meningkatkan performa dengan mengurangi kontensi CPU.&lt;/li&gt;
&lt;li&gt;Berguna untuk VM dengan beban I/O tinggi.&lt;/li&gt;
&lt;li&gt;Hanya tersedia untuk perangkat virtio modern.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;domain&amp;gt;&lt;/span&gt;
  ...
  &lt;span class="nt"&gt;&amp;lt;iothreads&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/iothreads&amp;gt;&lt;/span&gt;
  ...
  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"qemu"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"qcow2"&lt;/span&gt; &lt;span class="na"&gt;copy_on_read=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt; &lt;span class="na"&gt;iothread=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/libvirt/images/rocky-mariadb.vmdk"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"vda"&lt;/span&gt; &lt;span class="na"&gt;bus=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt; &lt;span class="na"&gt;rotation_rate=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"qemu"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"qcow2"&lt;/span&gt; &lt;span class="na"&gt;copy_on_read=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt; &lt;span class="na"&gt;iothread=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/libvirt/images/rocky-mariadb-1.vmdk"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"vdb"&lt;/span&gt; &lt;span class="na"&gt;bus=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt; &lt;span class="na"&gt;rotation_rate=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
  ...
&lt;span class="nt"&gt;&amp;lt;/domain&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  17. &lt;strong&gt;&lt;code&gt;driver.name&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan driver backend yang digunakan untuk disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi umum: &lt;code&gt;qemu&lt;/code&gt; (default), &lt;code&gt;vhost-user&lt;/code&gt;, atau driver khusus lainnya.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;vhost-user&lt;/code&gt; digunakan untuk akses disk melalui proses terpisah (misalnya, dengan SPDK).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"qemu"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  18. &lt;strong&gt;&lt;code&gt;driver.packed&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengaktifkan dukungan untuk &lt;strong&gt;packed virtqueues&lt;/strong&gt; (hanya untuk perangkat virtio).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Meningkatkan efisiensi dengan mengurangi overhead komunikasi antara guest dan host.&lt;/li&gt;
&lt;li&gt;Hanya tersedia untuk perangkat virtio modern.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;packed=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  19. &lt;strong&gt;&lt;code&gt;driver.page_per_vq&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengaktifkan fitur &lt;strong&gt;page-per-virtqueue&lt;/strong&gt; untuk perangkat virtio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mengalokasikan memori terpisah untuk setiap virtqueue, meningkatkan isolasi dan performa.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;page_per_vq=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  20. &lt;strong&gt;&lt;code&gt;driver.queues&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah antrian (queues) untuk perangkat disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Meningkatkan paralelisme dan performa I/O dengan menggunakan beberapa antrian.&lt;/li&gt;
&lt;li&gt;Berguna untuk beban kerja I/O intensif.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;queues=&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  21. &lt;strong&gt;&lt;code&gt;driver.type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan format disk yang digunakan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi umum: &lt;code&gt;raw&lt;/code&gt;, &lt;code&gt;qcow2&lt;/code&gt;, &lt;code&gt;vmdk&lt;/code&gt;, &lt;code&gt;vhd&lt;/code&gt;, dll.&lt;/li&gt;
&lt;li&gt;Menentukan format file/image yang digunakan untuk disk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  22. &lt;strong&gt;&lt;code&gt;geometry.cyls&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah &lt;strong&gt;siklinder (cylinders)&lt;/strong&gt; pada disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk menentukan geometri disk virtual (C/H/S: Cylinders/Heads/Sectors).&lt;/li&gt;
&lt;li&gt;Biasanya diperlukan untuk kompatibilitas dengan sistem operasi lama yang bergantung pada geometri disk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;geometry&lt;/span&gt; &lt;span class="na"&gt;cyls=&lt;/span&gt;&lt;span class="s"&gt;"16383"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  23. &lt;strong&gt;&lt;code&gt;geometry.heads&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah &lt;strong&gt;head&lt;/strong&gt; pada disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Bagian dari geometri disk (C/H/S).&lt;/li&gt;
&lt;li&gt;Misalnya, nilai umum adalah &lt;code&gt;16&lt;/code&gt; heads.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;geometry&lt;/span&gt; &lt;span class="na"&gt;heads=&lt;/span&gt;&lt;span class="s"&gt;"16"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  24. &lt;strong&gt;&lt;code&gt;geometry.secs&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah &lt;strong&gt;sektor (sectors) per track&lt;/strong&gt; pada disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Bagian dari geometri disk (C/H/S).&lt;/li&gt;
&lt;li&gt;Misalnya, nilai umum adalah &lt;code&gt;63&lt;/code&gt; sektor per track.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;geometry&lt;/span&gt; &lt;span class="na"&gt;secs=&lt;/span&gt;&lt;span class="s"&gt;"63"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  25. &lt;strong&gt;&lt;code&gt;geometry.trans&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jenis &lt;strong&gt;translasi geometri disk&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk menentukan bagaimana geometri disk diterjemahkan ke alamat fisik.&lt;/li&gt;
&lt;li&gt;Opsi: &lt;code&gt;none&lt;/code&gt;, &lt;code&gt;lba&lt;/code&gt;, &lt;code&gt;auto&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;lba&lt;/code&gt; (Logical Block Addressing) adalah metode modern untuk mengakses disk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;geometry&lt;/span&gt; &lt;span class="na"&gt;trans=&lt;/span&gt;&lt;span class="s"&gt;"lba"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  26. &lt;strong&gt;&lt;code&gt;iotune.read_bytes_sec&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Membatasi kecepatan baca (read) dalam &lt;strong&gt;byte per detik&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mengatur batas kecepatan baca untuk disk, berguna untuk membatasi penggunaan bandwidth.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;10485760&lt;/code&gt; untuk membatasi kecepatan baca hingga 10 MB/s.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;iotune&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;read_bytes_sec&amp;gt;&lt;/span&gt;10485760&lt;span class="nt"&gt;&amp;lt;/read_bytes_sec&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iotune&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  27. &lt;strong&gt;&lt;code&gt;iotune.read_iops_sec&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Membatasi jumlah operasi baca (read) dalam &lt;strong&gt;IOPS (Input/Output Operations Per Second)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mengatur batas jumlah operasi baca per detik.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;1000&lt;/code&gt; untuk membatasi hingga 1000 operasi baca per detik.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;iotune&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;read_iops_sec&amp;gt;&lt;/span&gt;1000&lt;span class="nt"&gt;&amp;lt;/read_iops_sec&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iotune&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  28. &lt;strong&gt;&lt;code&gt;iotune.total_bytes_sec&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Membatasi kecepatan total (baca + tulis) dalam &lt;strong&gt;byte per detik&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mengatur batas kecepatan total untuk semua operasi I/O (baca dan tulis).&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;20971520&lt;/code&gt; untuk membatasi kecepatan total hingga 20 MB/s.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;iotune&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;total_bytes_sec&amp;gt;&lt;/span&gt;20971520&lt;span class="nt"&gt;&amp;lt;/total_bytes_sec&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iotune&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  29. &lt;strong&gt;&lt;code&gt;iotune.total_iops_sec&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Membatasi jumlah total operasi I/O (baca + tulis) dalam &lt;strong&gt;IOPS&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mengatur batas jumlah total operasi I/O per detik.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;2000&lt;/code&gt; untuk membatasi hingga 2000 operasi I/O per detik.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;iotune&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;total_iops_sec&amp;gt;&lt;/span&gt;2000&lt;span class="nt"&gt;&amp;lt;/total_iops_sec&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iotune&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  30. &lt;strong&gt;&lt;code&gt;iotune.write_bytes_sec&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Membatasi kecepatan tulis (write) dalam &lt;strong&gt;byte per detik&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mengatur batas kecepatan tulis untuk disk.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;10485760&lt;/code&gt; untuk membatasi kecepatan tulis hingga 10 MB/s.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;iotune&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;write_bytes_sec&amp;gt;&lt;/span&gt;10485760&lt;span class="nt"&gt;&amp;lt;/write_bytes_sec&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iotune&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  31. &lt;strong&gt;&lt;code&gt;iotune.write_iops_sec&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Membatasi jumlah operasi tulis (write) dalam &lt;strong&gt;IOPS&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mengatur batas jumlah operasi tulis per detik.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;1000&lt;/code&gt; untuk membatasi hingga 1000 operasi tulis per detik.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;iotune&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;write_iops_sec&amp;gt;&lt;/span&gt;1000&lt;span class="nt"&gt;&amp;lt;/write_iops_sec&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iotune&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Berikut penjelasan mengenai atribut disk pada libvirt yang berkaitan dengan konfigurasi umum dan manajemen disk:&lt;/p&gt;




&lt;h3&gt;
  
  
  32. &lt;strong&gt;&lt;code&gt;path&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jalur (path) ke file atau perangkat fisik yang digunakan sebagai disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Menunjukkan lokasi file image (misalnya, &lt;code&gt;/var/lib/libvirt/images/disk.qcow2&lt;/code&gt;) atau perangkat blok (misalnya, &lt;code&gt;/dev/sdb&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Wajib diisi untuk disk tipe &lt;code&gt;file&lt;/code&gt; atau &lt;code&gt;block&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- path --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  33. &lt;strong&gt;&lt;code&gt;pool&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan pool penyimpanan (storage pool) yang digunakan untuk disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mengaitkan disk dengan pool penyimpanan yang telah didefinisikan di libvirt.&lt;/li&gt;
&lt;li&gt;Libvirt akan mengelola lokasi file disk secara otomatis berdasarkan pool yang ditentukan.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"volume"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;pool=&lt;/span&gt;&lt;span class="s"&gt;"default"&lt;/span&gt; &lt;span class="na"&gt;volume=&lt;/span&gt;&lt;span class="s"&gt;"disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- pool --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  34. &lt;strong&gt;&lt;code&gt;rawio&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengaktifkan akses I/O mentah (raw) ke perangkat disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk perangkat blok yang memerlukan akses langsung (misalnya, perangkat SCSI atau disk passthrough).&lt;/li&gt;
&lt;li&gt;Membutuhkan izin khusus (biasanya akses root).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"block"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"/dev/sdb"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rawio/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- rawio --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  35. &lt;strong&gt;&lt;code&gt;readonly&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menandai disk sebagai &lt;strong&gt;hanya baca (read-only)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Mencegah VM menulis ke disk.&lt;/li&gt;
&lt;li&gt;Berguna untuk disk yang berisi data statis atau template.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;readonly/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- readonly --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  36. &lt;strong&gt;&lt;code&gt;serial&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan nomor seri (serial number) untuk disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Memberikan identifikasi unik untuk disk, yang dapat dilihat oleh sistem operasi guest.&lt;/li&gt;
&lt;li&gt;Berguna untuk skenario seperti multipath atau identifikasi disk di dalam guest.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;serial&amp;gt;&lt;/span&gt;1234-ABCD&lt;span class="nt"&gt;&amp;lt;/serial&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- serial --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  37. &lt;strong&gt;&lt;code&gt;sgio&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Mengontrol mode &lt;strong&gt;SCSI Generic I/O (SG_IO)&lt;/strong&gt; untuk perangkat disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi: &lt;code&gt;filtered&lt;/code&gt; (default) atau &lt;code&gt;unfiltered&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;unfiltered&lt;/code&gt; memungkinkan akses langsung ke perintah SCSI tingkat rendah, tetapi membutuhkan izin khusus.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"block"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"/dev/sdb"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;sgio&amp;gt;&lt;/span&gt;unfiltered&lt;span class="nt"&gt;&amp;lt;/sgio&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- sgio --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  38. &lt;strong&gt;&lt;code&gt;shareable&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menandai disk sebagai &lt;strong&gt;dapat dibagikan (shareable)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Memungkinkan disk diakses oleh lebih dari satu VM secara bersamaan.&lt;/li&gt;
&lt;li&gt;Berguna untuk skenario seperti disk bersama (shared storage) atau clustering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peringatan&lt;/strong&gt;: Harus digunakan dengan hati-hati untuk menghindari korupsi data.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/shared_disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;shareable/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- shareable --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  39. &lt;strong&gt;&lt;code&gt;size&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan ukuran disk dalam &lt;strong&gt;byte&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan saat membuat disk baru untuk menentukan ukurannya.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;10737418240&lt;/code&gt; untuk disk berukuran 10 GB.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;capacity&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;"bytes"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;10737418240&lt;span class="nt"&gt;&amp;lt;/capacity&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- size --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  40. &lt;strong&gt;&lt;code&gt;snapshot&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan perilaku disk saat snapshot diambil.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi:&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal&lt;/code&gt;: Snapshot disimpan di dalam file image disk.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;external&lt;/code&gt;: Snapshot disimpan di file terpisah.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;no&lt;/code&gt;: Disk tidak mendukung snapshot.&lt;/li&gt;
&lt;li&gt;Berguna untuk mengontrol apakah disk dapat di-snapshot atau tidak.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;snapshot&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"internal"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- snapshot --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  41. &lt;strong&gt;&lt;code&gt;source.dev&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan perangkat blok fisik (block device) sebagai sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk mengaitkan disk dengan perangkat blok di host (misalnya, &lt;code&gt;/dev/sdb&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Umumnya digunakan untuk tipe disk &lt;code&gt;block&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"block"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"/dev/sdb"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.dev --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  42. &lt;strong&gt;&lt;code&gt;source.dir&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan direktori sebagai sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk tipe disk &lt;code&gt;dir&lt;/code&gt;, di mana direktori di-host dianggap sebagai disk.&lt;/li&gt;
&lt;li&gt;Contoh: Direktori berisi file-file kecil yang dianggap sebagai blok disk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"dir"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;dir=&lt;/span&gt;&lt;span class="s"&gt;"/path/to/directory"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.dir --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  43. &lt;strong&gt;&lt;code&gt;source.file&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan file sebagai sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk tipe disk &lt;code&gt;file&lt;/code&gt;, di mana file image (misalnya, &lt;code&gt;qcow2&lt;/code&gt;, &lt;code&gt;raw&lt;/code&gt;) digunakan sebagai disk.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;/var/lib/libvirt/images/disk.qcow2&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.file --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  44. &lt;strong&gt;&lt;code&gt;source.host[0-9]*.name&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan nama host untuk sumber disk berbasis jaringan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk disk yang diakses melalui jaringan (misalnya, NBD, iSCSI, atau Gluster).&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;server.example.com&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"network"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;protocol=&lt;/span&gt;&lt;span class="s"&gt;"nbd"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;host&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"server.example.com"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.host.name --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  45. &lt;strong&gt;&lt;code&gt;source.host[0-9]*.port&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan port untuk sumber disk berbasis jaringan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Menentukan port yang digunakan untuk mengakses sumber disk (misalnya, port 10809 untuk NBD).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"network"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;protocol=&lt;/span&gt;&lt;span class="s"&gt;"nbd"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;host&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"server.example.com"&lt;/span&gt; &lt;span class="na"&gt;port=&lt;/span&gt;&lt;span class="s"&gt;"10809"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.host.port --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  46. &lt;strong&gt;&lt;code&gt;source.host[0-9]*.socket&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan socket untuk sumber disk berbasis jaringan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk koneksi berbasis socket (misalnya, Unix domain socket).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"network"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;protocol=&lt;/span&gt;&lt;span class="s"&gt;"nbd"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;host&lt;/span&gt; &lt;span class="na"&gt;socket=&lt;/span&gt;&lt;span class="s"&gt;"/path/to/socket"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.host.socket --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  47. &lt;strong&gt;&lt;code&gt;source.host[0-9]*.transport&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jenis transport untuk sumber disk berbasis jaringan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi: &lt;code&gt;tcp&lt;/code&gt;, &lt;code&gt;rdma&lt;/code&gt;, atau &lt;code&gt;unix&lt;/code&gt; (untuk socket).&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;tcp&lt;/code&gt; untuk koneksi jaringan biasa.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"network"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;protocol=&lt;/span&gt;&lt;span class="s"&gt;"nbd"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;host&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"server.example.com"&lt;/span&gt; &lt;span class="na"&gt;transport=&lt;/span&gt;&lt;span class="s"&gt;"tcp"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.host.transport --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  48. &lt;strong&gt;&lt;code&gt;source.managed&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah sumber disk dikelola oleh libvirt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jika &lt;code&gt;yes&lt;/code&gt;, libvirt akan mengelola sumber disk (misalnya, membuat atau menghapus file image).&lt;/li&gt;
&lt;li&gt;Jika &lt;code&gt;no&lt;/code&gt;, pengguna bertanggung jawab untuk mengelola sumber disk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt; &lt;span class="na"&gt;managed=&lt;/span&gt;&lt;span class="s"&gt;"yes"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.managed --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  49. &lt;strong&gt;&lt;code&gt;source.name&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan nama sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk sumber disk tertentu (misalnya, volume di pool penyimpanan atau LUN di iSCSI).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"volume"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;pool=&lt;/span&gt;&lt;span class="s"&gt;"default"&lt;/span&gt; &lt;span class="na"&gt;volume=&lt;/span&gt;&lt;span class="s"&gt;"disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.name --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  50. &lt;strong&gt;&lt;code&gt;source.namespace&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan namespace untuk sumber disk berbasis NVMe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk mengakses namespace tertentu di perangkat NVMe.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"block"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"/dev/nvme0n1"&lt;/span&gt; &lt;span class="na"&gt;namespace=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.namespace --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  51. &lt;strong&gt;&lt;code&gt;source.pool&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan pool penyimpanan (storage pool) untuk sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk mengaitkan disk dengan pool penyimpanan yang telah didefinisikan di libvirt.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"volume"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;pool=&lt;/span&gt;&lt;span class="s"&gt;"default"&lt;/span&gt; &lt;span class="na"&gt;volume=&lt;/span&gt;&lt;span class="s"&gt;"disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.pool --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  52. &lt;strong&gt;&lt;code&gt;source.protocol&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan protokol untuk sumber disk berbasis jaringan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi: &lt;code&gt;nbd&lt;/code&gt;, &lt;code&gt;rbd&lt;/code&gt;, &lt;code&gt;gluster&lt;/code&gt;, &lt;code&gt;iscsi&lt;/code&gt;, &lt;code&gt;http&lt;/code&gt;, dll.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;rbd&lt;/code&gt; untuk disk yang diakses melalui Ceph RBD.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"network"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;protocol=&lt;/span&gt;&lt;span class="s"&gt;"rbd"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.protocol --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  53. &lt;strong&gt;&lt;code&gt;source.reservations.managed&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah reservasi sumber disk dikelola oleh libvirt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jika &lt;code&gt;yes&lt;/code&gt;, libvirt akan mengelola reservasi sumber disk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"block"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"/dev/sdb"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;reservations&lt;/span&gt; &lt;span class="na"&gt;managed=&lt;/span&gt;&lt;span class="s"&gt;"yes"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.reservations.managed --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  54. &lt;strong&gt;&lt;code&gt;source.reservations.source.mode&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan mode reservasi untuk sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi: &lt;code&gt;shared&lt;/code&gt; atau &lt;code&gt;exclusive&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;exclusive&lt;/code&gt; untuk memastikan hanya satu VM yang dapat mengakses disk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"block"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"/dev/sdb"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;reservations&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;mode=&lt;/span&gt;&lt;span class="s"&gt;"exclusive"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.reservations.source.mode --&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/reservations&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  55. &lt;strong&gt;&lt;code&gt;source.reservations.source.path&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan path untuk reservasi sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk menentukan lokasi reservasi (misalnya, file lock).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"block"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"/dev/sdb"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;reservations&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;path=&lt;/span&gt;&lt;span class="s"&gt;"/path/to/lock"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.reservations.source.path --&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/reservations&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  56. &lt;strong&gt;&lt;code&gt;source.reservations.source.type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jenis reservasi untuk sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi: &lt;code&gt;unix&lt;/code&gt;, &lt;code&gt;tcp&lt;/code&gt;, dll.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;unix&lt;/code&gt; untuk reservasi berbasis Unix domain socket.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"block"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"/dev/sdb"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;reservations&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"unix"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.reservations.source.type --&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/reservations&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  57. &lt;strong&gt;&lt;code&gt;source.seclabel[0-9]*.label&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan label keamanan (SELinux atau AppArmor) untuk sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk menerapkan kebijakan keamanan pada sumber disk.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;seclabel&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"selinux"&lt;/span&gt; &lt;span class="na"&gt;label=&lt;/span&gt;&lt;span class="s"&gt;"system_u:object_r:svirt_image_t:s0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.seclabel.label --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  58. &lt;strong&gt;&lt;code&gt;source.seclabel[0-9]*.model&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan model keamanan (SELinux, AppArmor, dll.) untuk sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Contoh: &lt;code&gt;selinux&lt;/code&gt; untuk menggunakan model SELinux.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;seclabel&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"selinux"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.seclabel.model --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  59. &lt;strong&gt;&lt;code&gt;source.seclabel[0-9]*.relabel&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah label keamanan harus diterapkan ulang (relabel) pada sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jika &lt;code&gt;yes&lt;/code&gt;, label keamanan akan diterapkan ulang saat VM dijalankan.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;seclabel&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"selinux"&lt;/span&gt; &lt;span class="na"&gt;relabel=&lt;/span&gt;&lt;span class="s"&gt;"yes"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.seclabel.relabel --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  60. &lt;strong&gt;&lt;code&gt;source.startupPolicy&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan kebijakan saat startup jika sumber disk tidak tersedia.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi: &lt;code&gt;mandatory&lt;/code&gt; (gagal jika sumber tidak ada), &lt;code&gt;requisite&lt;/code&gt; (gagal jika sumber tidak ada, tetapi tidak memblokir), &lt;code&gt;optional&lt;/code&gt; (lanjut tanpa sumber).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt; &lt;span class="na"&gt;startupPolicy=&lt;/span&gt;&lt;span class="s"&gt;"optional"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.startupPolicy --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  61. &lt;strong&gt;&lt;code&gt;source.type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jenis sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi: &lt;code&gt;file&lt;/code&gt;, &lt;code&gt;block&lt;/code&gt;, &lt;code&gt;network&lt;/code&gt;, &lt;code&gt;volume&lt;/code&gt;, &lt;code&gt;dir&lt;/code&gt;, dll.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;file&lt;/code&gt; untuk disk berbasis file image.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- source.type --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Berikut penjelasan mengenai atribut disk pada libvirt yang berkaitan dengan konfigurasi target, tipe, dan properti tambahan:&lt;/p&gt;




&lt;h3&gt;
  
  
  62. &lt;strong&gt;&lt;code&gt;sparse&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah file image disk harus dibuat sebagai &lt;strong&gt;sparse file&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jika &lt;code&gt;yes&lt;/code&gt;, file image akan menggunakan alokasi sparse (hanya mengalokasikan ruang untuk data yang benar-benar ditulis).&lt;/li&gt;
&lt;li&gt;Berguna untuk menghemat ruang penyimpanan.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;sparse&amp;gt;&lt;/span&gt;yes&lt;span class="nt"&gt;&amp;lt;/sparse&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- sparse --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  63. &lt;strong&gt;&lt;code&gt;target.bus&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jenis bus yang digunakan untuk menghubungkan disk ke VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi: &lt;code&gt;ide&lt;/code&gt;, &lt;code&gt;scsi&lt;/code&gt;, &lt;code&gt;virtio&lt;/code&gt;, &lt;code&gt;usb&lt;/code&gt;, &lt;code&gt;sata&lt;/code&gt;, &lt;code&gt;xen&lt;/code&gt;, dll.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;virtio&lt;/code&gt; untuk performa optimal pada kebanyakan kasus.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"vda"&lt;/span&gt; &lt;span class="na"&gt;bus=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- target.bus --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  64. &lt;strong&gt;&lt;code&gt;target.dev&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan nama perangkat disk di dalam VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Contoh: &lt;code&gt;vda&lt;/code&gt; untuk disk pertama di bus &lt;code&gt;virtio&lt;/code&gt;, atau &lt;code&gt;hdb&lt;/code&gt; untuk disk kedua di bus &lt;code&gt;ide&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Nama ini akan terlihat oleh sistem operasi guest.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"vda"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- target.dev --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  65. &lt;strong&gt;&lt;code&gt;target.removable&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah disk dianggap sebagai perangkat &lt;strong&gt;removable&lt;/strong&gt; (dapat dilepas) oleh VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jika &lt;code&gt;yes&lt;/code&gt;, sistem operasi guest akan memperlakukan disk sebagai perangkat yang dapat dilepas (misalnya, USB drive).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"sda"&lt;/span&gt; &lt;span class="na"&gt;removable=&lt;/span&gt;&lt;span class="s"&gt;"yes"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- target.removable --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  66. &lt;strong&gt;&lt;code&gt;target.rotation_rate&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan kecepatan rotasi (rotation rate) untuk disk, dalam RPM (Rotations Per Minute).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Berguna untuk mensimulasikan disk HDD atau SSD di dalam VM.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;5400&lt;/code&gt; untuk HDD lambat, atau &lt;code&gt;1&lt;/code&gt; untuk SSD (tidak berputar).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"vda"&lt;/span&gt; &lt;span class="na"&gt;rotation_rate=&lt;/span&gt;&lt;span class="s"&gt;"5400"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- target.rotation_rate --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  67. &lt;strong&gt;&lt;code&gt;transient&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah disk bersifat &lt;strong&gt;transient&lt;/strong&gt; (sementara).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jika &lt;code&gt;yes&lt;/code&gt;, disk akan dihapus secara otomatis saat VM dimatikan.&lt;/li&gt;
&lt;li&gt;Berguna untuk disk sementara yang hanya diperlukan selama VM berjalan.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/temp_disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;transient/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- transient --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  68. &lt;strong&gt;&lt;code&gt;transient.shareBacking&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan apakah disk transient dapat berbagi &lt;strong&gt;backing store&lt;/strong&gt; dengan disk lain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jika &lt;code&gt;yes&lt;/code&gt;, disk transient dapat menggunakan backing store yang sama dengan disk lain.&lt;/li&gt;
&lt;li&gt;Berguna untuk menghemat ruang penyimpanan.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/temp_disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;transient&lt;/span&gt; &lt;span class="na"&gt;shareBacking=&lt;/span&gt;&lt;span class="s"&gt;"yes"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- transient.shareBacking --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  69. &lt;strong&gt;&lt;code&gt;type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jenis disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Opsi: &lt;code&gt;file&lt;/code&gt; (file image), &lt;code&gt;block&lt;/code&gt; (perangkat blok), &lt;code&gt;network&lt;/code&gt; (disk berbasis jaringan), &lt;code&gt;volume&lt;/code&gt; (volume di pool penyimpanan), &lt;code&gt;dir&lt;/code&gt; (direktori), dll.&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;file&lt;/code&gt; untuk disk berbasis file image.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- type --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  70. &lt;strong&gt;&lt;code&gt;vol&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan volume di pool penyimpanan sebagai sumber disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Digunakan untuk mengaitkan disk dengan volume yang telah didefinisikan di pool penyimpanan libvirt.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"volume"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;pool=&lt;/span&gt;&lt;span class="s"&gt;"default"&lt;/span&gt; &lt;span class="na"&gt;volume=&lt;/span&gt;&lt;span class="s"&gt;"disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- vol --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  71. &lt;strong&gt;&lt;code&gt;wwn&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan &lt;strong&gt;World Wide Name (WWN)&lt;/strong&gt; untuk disk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Memberikan identifikasi unik global untuk disk, yang dapat dilihat oleh sistem operasi guest.&lt;/li&gt;
&lt;li&gt;Berguna untuk skenario seperti multipath atau identifikasi disk di dalam guest.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/var/lib/libvirt/images/disk.qcow2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;wwn&amp;gt;&lt;/span&gt;5001a4a000000001&lt;span class="nt"&gt;&amp;lt;/wwn&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- wwn --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  NETWORK
&lt;/h2&gt;

&lt;p&gt;Berikut adalah penjelasan mengenai atribut-atribut Libvirt yang terkait dengan konfigurasi jaringan:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. &lt;code&gt;alias.name&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Memberikan nama alias untuk perangkat jaringan, memudahkan referensi dalam operasi manajemen (e.g., di &lt;code&gt;virsh&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;alias&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"net0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perangkat dapat diacu dengan &lt;code&gt;net0&lt;/code&gt; alih-alih alamat PCI.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;2. &lt;code&gt;boot.loadparm&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan parameter boot untuk firmware tertentu (misalnya, pada sistem &lt;strong&gt;s390x&lt;/strong&gt; atau &lt;strong&gt;virtio&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;loadparm=&lt;/span&gt;&lt;span class="s"&gt;'LINUX'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;3. &lt;code&gt;boot.order&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengatur urutan prioritas boot perangkat. Nilai lebih rendah berarti prioritas lebih tinggi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;order=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perangkat ini akan diprioritaskan pertama saat boot.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;4. &lt;code&gt;bridge&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan nama bridge host yang digunakan untuk menghubungkan antarmuka jaringan virtual.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;bridge=&lt;/span&gt;&lt;span class="s"&gt;'br0'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;VM terhubung ke bridge fisik &lt;code&gt;br0&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;5. Driver-related Attributes&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;driver.ats&lt;/code&gt;&lt;/strong&gt;: Mengaktifkan &lt;strong&gt;Address Translation Services&lt;/strong&gt; untuk optimasi DMA (untuk perangkat PCIe).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;driver.iommu&lt;/code&gt;&lt;/strong&gt;: Mengaktifkan dukungan IOMMU (isolasi memori untuk perangkat).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;driver.name&lt;/code&gt;&lt;/strong&gt;: Menentukan driver backend (e.g., &lt;code&gt;virtio&lt;/code&gt;, &lt;code&gt;vhost&lt;/code&gt;, &lt;code&gt;e1000&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;driver.packed&lt;/code&gt;&lt;/strong&gt;: Mengaktifkan mode &lt;strong&gt;packed virtqueues&lt;/strong&gt; (optimasi performa Virtio).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;driver.page_per_vq&lt;/code&gt;&lt;/strong&gt;: Mengalokasikan satu halaman memori per virtqueue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;driver.queues&lt;/code&gt;&lt;/strong&gt;: Menentukan jumlah antrian (queues) untuk multiqueue (meningkatkan throughput).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Contoh&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'vhost'&lt;/span&gt; &lt;span class="na"&gt;queues=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt; &lt;span class="na"&gt;packed=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt; &lt;span class="na"&gt;iommu=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;6. &lt;code&gt;filterref.filter&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menerapkan filter jaringan (firewall berbasis MAC/ARP/IP) ke antarmuka.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;filterref&lt;/span&gt; &lt;span class="na"&gt;filter=&lt;/span&gt;&lt;span class="s"&gt;'clean-traffic'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Filter &lt;code&gt;clean-traffic&lt;/code&gt; akan memblokir traffic tidak valid.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;7. &lt;code&gt;link.state&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengontrol status fisik antarmuka jaringan (up/down).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'down'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menonaktifkan koneksi jaringan untuk simulasi gangguan.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;8. &lt;code&gt;mac&lt;/code&gt; dan &lt;code&gt;mac.address&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan alamat MAC untuk antarmuka jaringan virtual.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;mac&lt;/code&gt;&lt;/strong&gt;: Elemen XML yang mengandung atribut &lt;code&gt;address&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;mac.address&lt;/code&gt;&lt;/strong&gt;: Nilai alamat MAC yang digunakan.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;mac&lt;/span&gt; &lt;span class="na"&gt;address=&lt;/span&gt;&lt;span class="s"&gt;'52:54:00:12:34:56'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ini akan mengatur alamat MAC antarmuka jaringan ke &lt;code&gt;52:54:00:12:34:56&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;9. &lt;code&gt;model&lt;/code&gt; dan &lt;code&gt;model.type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan model perangkat jaringan emulasi.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;model&lt;/code&gt;&lt;/strong&gt;: Elemen XML yang mengandung atribut &lt;code&gt;type&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;model.type&lt;/code&gt;&lt;/strong&gt;: Jenis model perangkat jaringan (e.g., &lt;code&gt;virtio&lt;/code&gt;, &lt;code&gt;e1000&lt;/code&gt;, &lt;code&gt;rtl8139&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;model&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'virtio'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menggunakan driver &lt;code&gt;virtio&lt;/code&gt; untuk performa optimal.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;10. &lt;code&gt;mtu.size&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan &lt;strong&gt;Maximum Transmission Unit (MTU)&lt;/strong&gt; untuk antarmuka jaringan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;mtu&lt;/span&gt; &lt;span class="na"&gt;size=&lt;/span&gt;&lt;span class="s"&gt;'9000'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mengatur MTU ke 9000 byte (untuk jaringan jumbo frames).&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;11. &lt;code&gt;network&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menghubungkan antarmuka jaringan virtual ke jaringan virtual yang sudah didefinisikan di Libvirt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;network=&lt;/span&gt;&lt;span class="s"&gt;'default'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menghubungkan VM ke jaringan virtual bernama &lt;code&gt;default&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;12. &lt;code&gt;rom.bar&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengontrol apakah ROM perangkat jaringan (e.g., PXE boot) terlihat di ruang memori BAR (Base Address Register).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;rom&lt;/span&gt; &lt;span class="na"&gt;bar=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menonaktifkan ROM dari ruang memori BAR.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;13. &lt;code&gt;rom.file&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan file ROM kustom untuk perangkat jaringan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;rom&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;'/path/to/custom.rom'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menggunakan ROM kustom untuk boot PXE atau lainnya.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;14. &lt;code&gt;source&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan sumber koneksi jaringan (e.g., bridge, jaringan virtual, atau passthrough).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;bridge=&lt;/span&gt;&lt;span class="s"&gt;'br0'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menghubungkan VM ke bridge fisik &lt;code&gt;br0&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;15. &lt;code&gt;source.mode&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan mode sumber jaringan (e.g., &lt;code&gt;bridge&lt;/code&gt;, &lt;code&gt;vepa&lt;/code&gt;, &lt;code&gt;passthrough&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;mode=&lt;/span&gt;&lt;span class="s"&gt;'vepa'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menggunakan mode VEPA (Virtual Ethernet Port Aggregator).&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;16. &lt;code&gt;source.path&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan path ke sumber jaringan (e.g., path ke tap device atau VFIO passthrough).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;path=&lt;/span&gt;&lt;span class="s"&gt;'/dev/vhost-net'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menggunakan device &lt;code&gt;vhost-net&lt;/code&gt; untuk akselerasi jaringan.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;17. &lt;code&gt;source.portgroup&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan grup port dalam jaringan virtual (untuk QoS atau filter khusus).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;portgroup=&lt;/span&gt;&lt;span class="s"&gt;'high-priority'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menggunakan grup port &lt;code&gt;high-priority&lt;/code&gt; yang sudah dikonfigurasi.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;18. &lt;code&gt;source.type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan jenis sumber jaringan (e.g., &lt;code&gt;bridge&lt;/code&gt;, &lt;code&gt;network&lt;/code&gt;, &lt;code&gt;direct&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'network'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menghubungkan VM ke jaringan virtual.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;19. &lt;code&gt;target.dev&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan nama perangkat jaringan di dalam VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;'vnet0'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perangkat akan muncul di VM sebagai &lt;code&gt;vnet0&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;20. &lt;code&gt;trustGuestRxFilters&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengizinkan VM untuk mengontrol filter penerimaan (RX) paket (e.g., MAC atau VLAN).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;interface&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'network'&lt;/span&gt; &lt;span class="na"&gt;trustGuestRxFilters=&lt;/span&gt;&lt;span class="s"&gt;'yes'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;alias&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'ua-myNIC'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/interface&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mempercayai filter yang diterapkan oleh guest OS.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;21. &lt;code&gt;type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan jenis antarmuka jaringan virtual.

&lt;ul&gt;
&lt;li&gt;Nilai yang umum digunakan:&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;network&lt;/code&gt;: Menghubungkan VM ke jaringan virtual yang didefinisikan di Libvirt.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;bridge&lt;/code&gt;: Menghubungkan VM ke bridge fisik atau logikal di host.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;direct&lt;/code&gt;: Menggunakan passthrough langsung ke antarmuka fisik host.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;user&lt;/code&gt;: Menggunakan jaringan NAT berbasis user (tanpa konfigurasi bridge).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ethernet&lt;/code&gt;: Untuk jaringan berbasis Ethernet.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;vhostuser&lt;/code&gt;: Menggunakan vhost-user untuk akselerasi jaringan (umumnya dengan DPDK).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;interface&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'network'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;network=&lt;/span&gt;&lt;span class="s"&gt;'default'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/interface&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menghubungkan VM ke jaringan virtual &lt;code&gt;default&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;22. &lt;code&gt;virtualport.parameters.instanceid&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan ID unik untuk instance virtual port (digunakan dalam jaringan Open vSwitch atau VEPA).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;virtualport&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'openvswitch'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;parameters&lt;/span&gt; &lt;span class="na"&gt;instanceid=&lt;/span&gt;&lt;span class="s"&gt;'00000000-0000-0000-0000-000000000001'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/virtualport&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;23. &lt;code&gt;virtualport.parameters.interfaceid&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan ID unik untuk antarmuka virtual port (digunakan dalam jaringan Open vSwitch atau VEPA).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;virtualport&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'openvswitch'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;parameters&lt;/span&gt; &lt;span class="na"&gt;interfaceid=&lt;/span&gt;&lt;span class="s"&gt;'00000000-0000-0000-0000-000000000002'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/virtualport&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;24. &lt;code&gt;virtualport.parameters.managerid&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan ID manajer yang bertanggung jawab atas virtual port (digunakan dalam jaringan Open vSwitch atau VEPA).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;virtualport&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'openvswitch'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;parameters&lt;/span&gt; &lt;span class="na"&gt;managerid=&lt;/span&gt;&lt;span class="s"&gt;'00000000-0000-0000-0000-000000000003'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/virtualport&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;25. &lt;code&gt;virtualport.parameters.profileid&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan ID profil yang digunakan untuk konfigurasi virtual port (misalnya, QoS atau filter).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;virtualport&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'openvswitch'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;parameters&lt;/span&gt; &lt;span class="na"&gt;profileid=&lt;/span&gt;&lt;span class="s"&gt;'high-priority'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/virtualport&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;26. &lt;code&gt;virtualport.parameters.typeid&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan ID tipe untuk virtual port (digunakan dalam jaringan Open vSwitch atau VEPA).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;virtualport&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'openvswitch'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;parameters&lt;/span&gt; &lt;span class="na"&gt;typeid=&lt;/span&gt;&lt;span class="s"&gt;'00000000-0000-0000-0000-000000000004'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/virtualport&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;27. &lt;code&gt;virtualport.parameters.typeidversion&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan versi ID tipe untuk virtual port (digunakan dalam jaringan Open vSwitch atau VEPA).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;virtualport&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'openvswitch'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;parameters&lt;/span&gt; &lt;span class="na"&gt;typeidversion=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/virtualport&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;28. &lt;code&gt;virtualport.type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan jenis virtual port yang digunakan.

&lt;ul&gt;
&lt;li&gt;Nilai yang umum digunakan:&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;openvswitch&lt;/code&gt;: Menggunakan Open vSwitch untuk virtual port.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;802.1Qbh&lt;/code&gt;: Menggunakan standar IEEE 802.1Qbh (Virtual Ethernet Port Aggregator - VEPA).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;802.1Qbg&lt;/code&gt;: Menggunakan standar IEEE 802.1Qbg (Virtual Ethernet Bridging - VEB).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;midonet&lt;/code&gt;: Menggunakan MidoNet untuk virtual port.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;virtualport&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'openvswitch'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  GRAPHICS
&lt;/h2&gt;

&lt;p&gt;Berikut adalah penjelasan mengenai atribut-atribut dalam elemen &lt;code&gt;&amp;lt;graphics&amp;gt;&lt;/code&gt; di libvirt, yang digunakan untuk mengkonfigurasi tampilan grafis mesin virtual (VM):&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;&lt;code&gt;alias.name&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Nama alias yang ditentukan pengguna untuk perangkat grafis, memudahkan referensi dalam konfigurasi lain.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;&lt;code&gt;clipboard.copypaste&lt;/code&gt;&lt;/strong&gt; (boolean)
&lt;/h3&gt;

&lt;p&gt;Mengaktifkan/menonaktifkan fitur salin-tempel (clipboard) antara host dan guest. Umumnya digunakan dengan protokol SPICE.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;&lt;code&gt;connected&lt;/code&gt;&lt;/strong&gt; (status)
&lt;/h3&gt;

&lt;p&gt;Menunjukkan status koneksi grafis saat ini (misal: &lt;code&gt;keep&lt;/code&gt; atau &lt;code&gt;disconnect&lt;/code&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;&lt;code&gt;defaultMode&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Mode akses default:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;secure&lt;/code&gt;: Hanya koneksi terenkripsi yang diizinkan.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;insecure&lt;/code&gt;: Koneksi tanpa enkripsi diizinkan (untuk VNC/SPICE).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;any&lt;/code&gt;: Keduanya diizinkan.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. &lt;strong&gt;&lt;code&gt;filetransfer.enable&lt;/code&gt;&lt;/strong&gt; (boolean)
&lt;/h3&gt;

&lt;p&gt;Mengaktifkan transfer file melalui protokol SPICE.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;strong&gt;&lt;code&gt;gl.enable&lt;/code&gt;&lt;/strong&gt; (boolean)
&lt;/h3&gt;

&lt;p&gt;Mengaktifkan akselerasi OpenGL/GPU virtual (misal: untuk SPICE dengan virtual GPU).&lt;/p&gt;

&lt;h3&gt;
  
  
  7. &lt;strong&gt;&lt;code&gt;gl.rendernode&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Menentukan node render GPU fisik (DRM render node) untuk akselerasi grafis (contoh: &lt;code&gt;/dev/dri/renderD128&lt;/code&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  8. &lt;strong&gt;&lt;code&gt;image.compression&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Kompresi gambar untuk menghemat bandwidth. Opsi:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;auto_glz&lt;/code&gt;, &lt;code&gt;auto_lz&lt;/code&gt;, &lt;code&gt;quic&lt;/code&gt;, &lt;code&gt;glz&lt;/code&gt;, &lt;code&gt;lz&lt;/code&gt;, &lt;code&gt;off&lt;/code&gt; (tergantung protokol).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9. &lt;strong&gt;&lt;code&gt;keymap&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Tata letak keyboard (misal: &lt;code&gt;en-us&lt;/code&gt;, &lt;code&gt;de&lt;/code&gt;, &lt;code&gt;fr&lt;/code&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  10. &lt;strong&gt;&lt;code&gt;listen&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Alamat IP tempat server grafis mendengarkan (misal: `0.0.0.0` untuk semua antarmuka).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  11. &lt;strong&gt;&lt;code&gt;listens[0-9]*.address&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Alamat IP spesifik untuk instance listen tertentu (misal: `listens0.address=192.168.1.10`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  12. &lt;strong&gt;&lt;code&gt;listens[0-9]*.network&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Nama jaringan virtual tempat server grafis mendengarkan (misal: `default`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  13. &lt;strong&gt;&lt;code&gt;listens[0-9]*.socket&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Path ke socket UNIX untuk koneksi lokal (misal: `/var/lib/libvirt/qemu/domain-1-socket`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  14. &lt;strong&gt;&lt;code&gt;listens[0-9]*.type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tipe listen:
- `address`: Mendengarkan alamat IP.
- `network`: Terikat ke jaringan virtual.
- `socket`: Menggunakan socket UNIX.
- `none`: Tidak mendengarkan koneksi eksternal.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  15. &lt;strong&gt;&lt;code&gt;mouse.mode&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Mode kursor:
- `client`: Kursor dikontrol oleh aplikasi klien.
- `server`: Kursor dikontrol oleh guest OS.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  16. &lt;strong&gt;&lt;code&gt;password&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Kata sandi untuk mengakses tampilan grafis (jika autentikasi diaktifkan).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  17. &lt;strong&gt;&lt;code&gt;passwordValidTo&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Masa berlaku kata sandi (format waktu ISO 8601, contoh: `2024-12-31T23:59:59`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  18. &lt;strong&gt;&lt;code&gt;port&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Port TCP untuk koneksi grafis (misal: `5900` untuk VNC, `5901` untuk SPICE).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  19. &lt;strong&gt;&lt;code&gt;streaming.mode&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Mode streaming video (untuk SPICE):
- `filter`: Hanya mengirim area yang berubah.
- `all`: Mengirim semua frame.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  20. &lt;strong&gt;&lt;code&gt;tlsPort&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Port untuk koneksi terenkripsi TLS (misal: `5902`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  21. &lt;strong&gt;&lt;code&gt;type&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Protokol grafis yang digunakan:
- `vnc`: Remote desktop via VNC.
- `spice`: Protokol modern dengan dukungan GPU, audio, dll.
- `sdl`: Tampilan lokal menggunakan Simple DirectMedia Layer.
- `egl-headless`: Tanpa tampilan, untuk akselerasi GPU headless.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Catatan&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SPICE vs VNC&lt;/strong&gt;: Atribut seperti &lt;code&gt;gl.enable&lt;/code&gt;, &lt;code&gt;filetransfer.enable&lt;/code&gt;, dan &lt;code&gt;streaming.mode&lt;/code&gt; hanya berlaku untuk SPICE.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple Listeners&lt;/strong&gt;: Gunakan pola &lt;code&gt;listens0&lt;/code&gt;, &lt;code&gt;listens1&lt;/code&gt;, dst., untuk mengikat ke beberapa alamat/jaringan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keamanan&lt;/strong&gt;: Gunakan &lt;code&gt;defaultMode=secure&lt;/code&gt; dan &lt;code&gt;tlsPort&lt;/code&gt; untuk koneksi terenkripsi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contoh konfigurasi SPICE dengan akselerasi OpenGL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;graphics&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"spice"&lt;/span&gt; &lt;span class="na"&gt;port=&lt;/span&gt;&lt;span class="s"&gt;"5901"&lt;/span&gt; &lt;span class="na"&gt;listen=&lt;/span&gt;&lt;span class="s"&gt;"0.0.0.0"&lt;/span&gt; &lt;span class="na"&gt;defaultMode=&lt;/span&gt;&lt;span class="s"&gt;"secure"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;gl&lt;/span&gt; &lt;span class="na"&gt;enable=&lt;/span&gt;&lt;span class="s"&gt;"yes"&lt;/span&gt; &lt;span class="na"&gt;rendernode=&lt;/span&gt;&lt;span class="s"&gt;"/dev/dri/renderD128"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;clipboard&lt;/span&gt; &lt;span class="na"&gt;copypaste=&lt;/span&gt;&lt;span class="s"&gt;"yes"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/graphics&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  22. &lt;strong&gt;websocket&lt;/strong&gt;:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;websocket&lt;/code&gt; adalah protokol komunikasi yang memungkinkan komunikasi dua arah antara klien dan server melalui koneksi TCP yang persisten.&lt;/li&gt;
&lt;li&gt;Dalam konteks libvirt, ketika &lt;code&gt;websocket&lt;/code&gt; diaktifkan, ini memungkinkan akses ke tampilan grafis VM melalui protokol WebSocket. Ini berguna jika Anda ingin mengakses konsol grafis VM melalui browser web atau aplikasi lain yang mendukung WebSocket.&lt;/li&gt;
&lt;li&gt;Contoh penggunaan: Jika Anda menggunakan VNC (Virtual Network Computing) untuk mengakses tampilan grafis VM, Anda bisa mengonfigurasi VNC untuk menggunakan WebSocket sebagai transport layer, sehingga memungkinkan akses melalui browser web.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  23. &lt;strong&gt;zlib.compression&lt;/strong&gt;:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;zlib.compression&lt;/code&gt; mengacu pada penggunaan kompresi data menggunakan library &lt;code&gt;zlib&lt;/code&gt; untuk mengurangi ukuran data yang dikirimkan melalui jaringan.&lt;/li&gt;
&lt;li&gt;Dalam konteks libvirt, ketika &lt;code&gt;zlib.compression&lt;/code&gt; diaktifkan, data grafis yang dikirimkan dari VM ke klien (misalnya, melalui VNC atau SPICE) akan dikompresi terlebih dahulu menggunakan algoritma kompresi &lt;code&gt;zlib&lt;/code&gt;. Ini dapat mengurangi bandwidth yang digunakan dan meningkatkan kinerja, terutama pada koneksi jaringan yang lambat.&lt;/li&gt;
&lt;li&gt;Contoh penggunaan: Jika Anda menggunakan SPICE (Simple Protocol for Independent Computing Environments) untuk mengakses tampilan grafis VM, Anda bisa mengaktifkan kompresi &lt;code&gt;zlib&lt;/code&gt; untuk mengurangi latensi dan meningkatkan responsivitas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Contoh Konfigurasi dalam XML Libvirt:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Berikut adalah contoh bagaimana atribut &lt;code&gt;GRAPHICS&lt;/code&gt; dengan &lt;code&gt;websocket&lt;/code&gt; dan &lt;code&gt;zlib.compression&lt;/code&gt; mungkin dikonfigurasi dalam file XML domain libvirt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;graphics&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'vnc'&lt;/span&gt; &lt;span class="na"&gt;port=&lt;/span&gt;&lt;span class="s"&gt;'-1'&lt;/span&gt; &lt;span class="na"&gt;autoport=&lt;/span&gt;&lt;span class="s"&gt;'yes'&lt;/span&gt; &lt;span class="na"&gt;websocket=&lt;/span&gt;&lt;span class="s"&gt;'5700'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;compression&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'zlib'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/graphics&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;type='vnc'&lt;/code&gt;: Menentukan bahwa protokol grafis yang digunakan adalah VNC.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;websocket='5700'&lt;/code&gt;: Mengaktifkan WebSocket pada port 5700 untuk akses melalui browser web.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;compression type='zlib'/&amp;gt;&lt;/code&gt;: Mengaktifkan kompresi &lt;code&gt;zlib&lt;/code&gt; untuk data grafis yang dikirimkan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dengan konfigurasi ini, Anda dapat mengakses tampilan grafis VM melalui VNC dengan dukungan WebSocket dan kompresi &lt;code&gt;zlib&lt;/code&gt; untuk meningkatkan efisiensi jaringan.&lt;/p&gt;

&lt;h2&gt;
  
  
  CONTROLLER
&lt;/h2&gt;

&lt;p&gt;Berikut adalah penjelasan tentang atribut-atribut CONTROLLER dalam libvirt:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Driver Attributes (Umumnya untuk Virtio/PCIe)&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;driver.ats&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mengaktifkan &lt;strong&gt;Address Translation Services&lt;/strong&gt; (ATS) pada PCIe controller.&lt;/li&gt;
&lt;li&gt;Berguna untuk meningkatkan kinerja PCI passthrough dengan mengizinkan perangkat melakukan translasi alamat DMA sendiri.&lt;/li&gt;
&lt;li&gt;Nilai: &lt;code&gt;"on"&lt;/code&gt; atau &lt;code&gt;"off"&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;driver.iommu&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mengaktifkan dukungan &lt;strong&gt;IOMMU&lt;/strong&gt; (Input-Output Memory Management Unit) untuk isolasi DMA dan keamanan.&lt;/li&gt;
&lt;li&gt;Diperlukan untuk VFIO passthrough atau SR-IOV.&lt;/li&gt;
&lt;li&gt;Nilai: &lt;code&gt;"on"&lt;/code&gt; atau &lt;code&gt;"off"&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;driver.iothread&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Menetapkan controller ke &lt;strong&gt;IOThread khusus&lt;/strong&gt; untuk meningkatkan kinerja I/O dengan mengurangi kontenksi CPU.&lt;/li&gt;
&lt;li&gt;Umumnya digunakan untuk disk/net virtio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XML Example&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;    &lt;span class="nt"&gt;&amp;lt;domain&amp;gt;&lt;/span&gt;
      ...
      &lt;span class="nt"&gt;&amp;lt;iothreads&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/iothreads&amp;gt;&lt;/span&gt;
      ...
      &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"scsi"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"virtio-scsi"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;queues=&lt;/span&gt;&lt;span class="s"&gt;"16"&lt;/span&gt; &lt;span class="na"&gt;iothread=&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/controller&amp;gt;&lt;/span&gt;
      ...
    &lt;span class="nt"&gt;&amp;lt;/domain&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;validasi dengan perintah berikut.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   $ pidstat -t -p QEMU-PID
   Linux 6.8.0-55-generic (nova.topan.host)        03/29/2025      _x86_64_        (2 CPU)

   11:05:16 PM   UID      TGID       TID    %usr %system  %guest   %wait    %CPU   CPU  Command
   11:05:16 PM  1000      1795         -    0.33    0.75    2.46    0.01    3.54     0  qemu-system-x86
   11:05:16 PM  1000         -      1795    0.04    0.05    0.00    0.01    0.09     0  |__qemu-system-x86
   11:05:16 PM  1000         -      1811    0.00    0.00    0.00    0.00    0.00     1  |__qemu-system-x86
   11:05:16 PM  1000         -      1814    0.00    0.00    0.00    0.00    0.00     1  |__IO iothread1
   11:05:16 PM  1000         -      1815    0.00    0.00    0.00    0.00    0.00     0  |__IO iothread2
   11:05:16 PM  1000         -      1817    0.00    0.00    0.00    0.00    0.00     1  |__IO iothread3
   11:05:16 PM  1000         -      1819    0.04    0.04    0.00    0.04    0.08     0  |__IO iothread4
   11:05:16 PM  1000         -      1825    0.00    0.01    0.00    0.01    0.01     1  |__vhost-1795
   11:05:16 PM  1000         -      1826    0.00    0.01    0.00    0.01    0.01     0  |__vhost-1795
   11:05:16 PM  1000         -      1827    0.01    0.00    0.00    0.00    0.01     1  |__IO mon_iothread
   11:05:16 PM  1000         -      1829    0.15    0.34    1.34    0.12    1.83     0  |__CPU 0/KVM
   11:05:16 PM  1000         -      1830    0.08    0.19    1.12    0.11    1.40     1  |__CPU 1/KVM
   11:05:16 PM  1000         -      1840    0.00    0.00    0.00    0.00    0.00     1  |__vnc_worker
   11:05:16 PM  1000         -      2230    0.00    0.00    0.00    0.00    0.00     1  |__worker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. &lt;strong&gt;driver.packed&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mengaktifkan &lt;strong&gt;virtio packed rings&lt;/strong&gt; (fitur QEMU modern) untuk mengurangi overhead komunikasi antara guest dan host.&lt;/li&gt;
&lt;li&gt;Hanya berlaku untuk controller virtio (misal: virtio-net, virtio-blk).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. &lt;strong&gt;driver.page_per_vq&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mengalokasikan &lt;strong&gt;satu halaman memori terpisah per virtqueue&lt;/strong&gt; untuk isolasi atau kinerja.&lt;/li&gt;
&lt;li&gt;Nilai: &lt;code&gt;"on"&lt;/code&gt; atau &lt;code&gt;"off"&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. &lt;strong&gt;driver.queues&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Menentukan &lt;strong&gt;jumlah queue&lt;/strong&gt; untuk controller yang mendukung multi-queue (misal: virtio-net).&lt;/li&gt;
&lt;li&gt;Meningkatkan throughput dengan paralelisasi.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Konfigurasi Umum Controller&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. &lt;strong&gt;index&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nomor unik&lt;/strong&gt; untuk membedakan controller sejenis (misal: multiple PCI controllers).&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;&amp;lt;controller type='pci' index='0'&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8. &lt;strong&gt;model&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Menentukan &lt;strong&gt;model emulasi hardware&lt;/strong&gt; (misal: &lt;code&gt;"virtio"&lt;/code&gt;, &lt;code&gt;"ich9"&lt;/code&gt;, &lt;code&gt;"pcie-root"&lt;/code&gt;, &lt;code&gt;"nec-xhci"&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Contoh: &lt;code&gt;&amp;lt;controller type='usb' model='qemu-xhci'&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9. &lt;strong&gt;type&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Jenis controller: &lt;code&gt;"pci"&lt;/code&gt;, &lt;code&gt;"usb"&lt;/code&gt;, &lt;code&gt;"scsi"&lt;/code&gt;, &lt;code&gt;"virtio-serial"&lt;/code&gt;, &lt;code&gt;"ccid"&lt;/code&gt;, dll.&lt;/li&gt;
&lt;li&gt;Wajib diisi.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10. &lt;strong&gt;vectors&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Jumlah **interrupt vectors** (MSI-X) yang dialokasikan untuk controller.
- Contoh: `&amp;lt;controller ... vectors='32'&amp;gt;`.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;PCI/PCIe-Specific Attributes&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  11. &lt;strong&gt;num_pcie_root_ports&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Jumlah **PCIe root ports** yang tersedia pada PCIe root controller.
- Memengaruhi jumlah perangkat yang bisa di-hotplug.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  12. &lt;strong&gt;target.busNr&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Nomor bus PCI yang ditetapkan ke controller (misal: `busNr='0x00'`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  13. &lt;strong&gt;maxGrantFrames&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- (Xen-specific) Batas maksimum **grant frames** untuk berbagi memori antar domain.
- Contoh: `maxGrantFrames='32'`.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;USB-Specific Attributes&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  14. &lt;strong&gt;master.startport&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Port awal untuk controller USB master (misal: `startport='0'`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  15. &lt;strong&gt;target.chassis&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Nomor chassis untuk mengelompokkan USB controller (misal: `chassis='1'`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  16. &lt;strong&gt;target.chassisNr&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Alias untuk `target.chassis`.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  17. &lt;strong&gt;target.port&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Port USB yang dituju dalam guest (misal: `port='0x01'`).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Hotplug &amp;amp; Topologi&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  18. &lt;strong&gt;target.hotplug&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Mengizinkan **hotplug** perangkat pada controller.
- Nilai: `"on"` atau `"off"`.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  19. &lt;strong&gt;target.index&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Posisi controller dalam hierarki guest (misal: untuk USB).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  20. &lt;strong&gt;target.node&lt;/strong&gt;
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Mengaitkan controller dengan **NUMA node** tertentu untuk optimasi lokalisasi memori.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;Contoh XML&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'pci'&lt;/span&gt; &lt;span class="na"&gt;index=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;'pcie-root'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;queues=&lt;/span&gt;&lt;span class="s"&gt;'4'&lt;/span&gt; &lt;span class="na"&gt;packed=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;busNr=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;hotplug=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/controller&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'usb'&lt;/span&gt; &lt;span class="na"&gt;index=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;'qemu-xhci'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;master&lt;/span&gt; &lt;span class="na"&gt;startport=&lt;/span&gt;&lt;span class="s"&gt;'0'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;chassis=&lt;/span&gt;&lt;span class="s"&gt;'1'&lt;/span&gt; &lt;span class="na"&gt;port=&lt;/span&gt;&lt;span class="s"&gt;'0x01'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/controller&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Catatan&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Beberapa atribut hanya tersedia pada hypervisor/QEMU versi tertentu.&lt;/li&gt;
&lt;li&gt;Atribut seperti &lt;code&gt;driver.packed&lt;/code&gt; dan &lt;code&gt;driver.ats&lt;/code&gt; memerlukan dukungan hardware guest.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  WATCHDOG
&lt;/h2&gt;

&lt;p&gt;Berikut penjelasan mengenai atribut &lt;code&gt;WATCHDOG&lt;/code&gt; dalam libvirt:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;&lt;code&gt;model&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Menentukan jenis perangkat watchdog virtual yang diemulasikan untuk guest VM.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contoh Nilai&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;i6300esb&lt;/code&gt; (default): Watchdog PCI berbasis Intel 6300ESB.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ib700&lt;/code&gt;: Watchdog ISA lama (kurang umum).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Fungsi&lt;/strong&gt;:
Model ini menentukan cara perangkat berinteraksi dengan guest OS. Misalnya, driver di guest OS (seperti &lt;code&gt;i6300esb&lt;/code&gt; di Linux) harus sesuai dengan model yang dipilih.&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;&lt;code&gt;action&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Menentukan tindakan yang diambil &lt;strong&gt;hypervisor&lt;/strong&gt; ketika watchdog timer kedaluwarsa (tidak di-reset oleh guest OS).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contoh Nilai&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;reset&lt;/code&gt;: Mereset VM secara paksa.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;poweroff&lt;/code&gt;: Mematikan VM.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pause&lt;/code&gt;: Menjeda VM.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;none&lt;/code&gt;: Tidak melakukan apa-apa (hanya log).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;shutdown&lt;/code&gt;: Mematikan VM secara graceful (harus didukung guest OS).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dump&lt;/code&gt;: Membuat core dump sebelum mematikan VM.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Fungsi&lt;/strong&gt;:
Berguna untuk pemulihan otomatis jika guest OS mengalami hang/crash.&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. &lt;strong&gt;&lt;code&gt;alias.name&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Nama alias unik yang diberikan ke perangkat watchdog untuk memudahkan referensi.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;watchdog&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;'i6300esb'&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;'reset'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;alias&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'my-watchdog'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/watchdog&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fungsi&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memudahkan pengelolaan perangkat melalui CLI (misal: &lt;code&gt;virsh&lt;/code&gt;) atau API.&lt;/li&gt;
&lt;li&gt;Contoh penggunaan:
&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;virsh dumpxml vm-name | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s2"&gt;"alias name"&lt;/span&gt;  &lt;span class="c"&gt;# Melihat alias perangkat&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;Contoh XML Lengkap:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;devices&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;watchdog&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;'i6300esb'&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;'reset'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;alias&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'my-watchdog'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/watchdog&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/devices&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Catatan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Watchdog memerlukan konfigurasi di &lt;strong&gt;guest OS&lt;/strong&gt; (misal: instal driver &lt;code&gt;i6300esb&lt;/code&gt; dan layanan watchdog seperti &lt;code&gt;watchdogd&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Jika guest OS gagal mereset timer (misal karena crash), hypervisor akan menjalankan &lt;code&gt;action&lt;/code&gt; yang ditentukan.&lt;/li&gt;
&lt;li&gt;Alias berguna untuk operasi seperti hot-unplug atau debugging.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  IOTHREADS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Penjelasan dan Contoh Penggunaan Attribute IOTHREADS pada Libvirt&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Berikut adalah penjelasan mengenai atribut terkait I/O threads (&lt;code&gt;iothreads&lt;/code&gt;) dalam Libvirt beserta contoh penggunaannya:&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;1. &lt;code&gt;defaultiothread.thread_pool_max&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah &lt;strong&gt;maksimum&lt;/strong&gt; thread pekerja (worker thread) yang dapat diaktifkan dalam &lt;em&gt;thread pool&lt;/em&gt; untuk I/O threads yang &lt;strong&gt;tidak dikonfigurasi secara eksplisit&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;domain&amp;gt;&lt;/span&gt;
    ...
    &lt;span class="nt"&gt;&amp;lt;defaultiothread&lt;/span&gt; &lt;span class="na"&gt;thread_pool_max=&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;iothreads&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/iothreads&amp;gt;&lt;/span&gt;
    ...
  &lt;span class="nt"&gt;&amp;lt;/domain&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Dua I/O threads akan dibuat dengan &lt;em&gt;thread pool&lt;/em&gt; maksimum 4 thread (karena tidak ada konfigurasi khusus).&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;2. &lt;code&gt;defaultiothread.thread_pool_min&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah &lt;strong&gt;minimum&lt;/strong&gt; thread pekerja yang tetap aktif dalam &lt;em&gt;thread pool&lt;/em&gt; untuk I/O threads default.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;defaultiothread&lt;/span&gt; &lt;span class="na"&gt;thread_pool_min=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;thread_pool_max=&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Setiap I/O thread default akan memiliki minimal 1 thread dan maksimal 4 thread di pool-nya.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;3. &lt;code&gt;iothreadids.iothread[0-9]*.id&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: ID numerik untuk mengidentifikasi I/O thread tertentu. Biasanya dimulai dari &lt;code&gt;1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;iothreadids&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;iothread&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;iothread&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iothreadids&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Membuat dua I/O threads dengan ID 1 dan 2.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;4. &lt;code&gt;iothreadids.iothread[0-9]*.thread_pool_max&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah maksimum thread pekerja untuk I/O thread &lt;strong&gt;spesifik&lt;/strong&gt; yang dikonfigurasi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;iothreadids&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;iothread&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;thread_pool_max=&lt;/span&gt;&lt;span class="s"&gt;"8"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;iothread&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt; &lt;span class="na"&gt;thread_pool_max=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iothreadids&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;I/O thread 1 memiliki maksimal 8 thread, sedangkan thread 2 maksimal 2 thread.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;5. &lt;code&gt;iothreadids.iothread[0-9]*.thread_pool_min&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan jumlah minimum thread pekerja untuk I/O thread &lt;strong&gt;spesifik&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;iothreadids&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;iothread&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;thread_pool_min=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt; &lt;span class="na"&gt;thread_pool_max=&lt;/span&gt;&lt;span class="s"&gt;"8"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iothreadids&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;I/O thread 1 memiliki minimal 2 thread yang selalu aktif.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;6. &lt;code&gt;iothreads&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arti&lt;/strong&gt;: Menentukan &lt;strong&gt;total jumlah I/O threads&lt;/strong&gt; yang akan dibuat untuk domain VM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh Penggunaan&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;  &lt;span class="nt"&gt;&amp;lt;domain&amp;gt;&lt;/span&gt;
    ...
    &lt;span class="nt"&gt;&amp;lt;iothreads&amp;gt;&lt;/span&gt;3&lt;span class="nt"&gt;&amp;lt;/iothreads&amp;gt;&lt;/span&gt;
    ...
  &lt;span class="nt"&gt;&amp;lt;/domain&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Akan membuat 3 I/O threads. Jika tidak ada konfigurasi khusus, semua menggunakan pengaturan &lt;code&gt;defaultiothread&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Contoh Konfigurasi Lengkap&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;domain&amp;gt;&lt;/span&gt;
  ...
  &lt;span class="c"&gt;&amp;lt;!-- Jumlah total I/O threads --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;iothreads&amp;gt;&lt;/span&gt;3&lt;span class="nt"&gt;&amp;lt;/iothreads&amp;gt;&lt;/span&gt;

  &lt;span class="c"&gt;&amp;lt;!-- Konfigurasi default untuk I/O threads --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;defaultiothread&lt;/span&gt; &lt;span class="na"&gt;thread_pool_min=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;thread_pool_max=&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

  &lt;span class="c"&gt;&amp;lt;!-- Konfigurasi spesifik untuk I/O thread 1 dan 2 --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;iothreadids&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;iothread&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;thread_pool_min=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt; &lt;span class="na"&gt;thread_pool_max=&lt;/span&gt;&lt;span class="s"&gt;"8"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;iothread&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt; &lt;span class="na"&gt;thread_pool_max=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/iothreadids&amp;gt;&lt;/span&gt;
  ...
&lt;span class="nt"&gt;&amp;lt;/domain&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Penjelasan&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 I/O threads dibuat.&lt;/li&gt;
&lt;li&gt;I/O thread 1: &lt;code&gt;thread_pool_min=2&lt;/code&gt;, &lt;code&gt;thread_pool_max=8&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;I/O thread 2: &lt;code&gt;thread_pool_min=1&lt;/code&gt; (default), &lt;code&gt;thread_pool_max=2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;I/O thread 3: Menggunakan pengaturan default (&lt;code&gt;min=1&lt;/code&gt;, &lt;code&gt;max=4&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Use Case&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Optimasi I/O&lt;/strong&gt;: Pada VM dengan disk berkinerja tinggi (e.g., NVMe), atur &lt;code&gt;thread_pool_max&lt;/code&gt; lebih besar untuk meningkatkan paralelisasi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Penghematan Sumber Daya&lt;/strong&gt;: Untuk disk yang jarang diakses, gunakan &lt;code&gt;thread_pool_min=1&lt;/code&gt; agar tidak membebani sistem.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FEATURES
&lt;/h2&gt;

&lt;p&gt;Berikut penjelasan arti dari setiap atribut &lt;code&gt;FEATURES&lt;/code&gt; di libvirt:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Fitur Umum&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;acpi&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kepanjangan&lt;/strong&gt;: Advanced Configuration and Power Interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Memungkinkan guest OS mengelola daya (shutdown, reboot, sleep).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Default&lt;/strong&gt;: Aktif untuk kebanyakan OS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;apic&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kepanjangan&lt;/strong&gt;: Advanced Programmable Interrupt Controller.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Memungkinkan interrupt handling yang efisien untuk sistem multi-core.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kebutuhan&lt;/strong&gt;: Diperlukan untuk SMP (multi-vCPU) pada x86.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;apic.eoi&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kepanjangan&lt;/strong&gt;: End of Interrupt (EOI).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengoptimalkan penanganan interrupt dengan mengirim sinyal EOI ke host.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dampak&lt;/strong&gt;: Meningkatkan performa I/O pada guest.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;pae&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kepanjangan&lt;/strong&gt;: Physical Address Extension.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Memungkinkan OS 32-bit mengakses RAM &amp;gt;4 GB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: Windows XP/7 32-bit dengan RAM besar.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Contoh:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;features&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;acpi/&amp;gt;&lt;/span&gt;             &lt;span class="c"&gt;&amp;lt;!-- Aktifkan ACPI --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;apic&amp;gt;&lt;/span&gt;              &lt;span class="c"&gt;&amp;lt;!-- Aktifkan APIC --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;eoi&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- Aktifkan optimasi EOI --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/apic&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;pae/&amp;gt;&lt;/span&gt;              &lt;span class="c"&gt;&amp;lt;!-- Aktifkan PAE --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/features&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;ARM-specific&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;gic.version&lt;/code&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kepanjangan&lt;/strong&gt;: Generic Interrupt Controller.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan versi GIC (v2, v3, atau v4) untuk ARM guests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Penting&lt;/strong&gt;: Kompatibilitas OS (misal: GICv3 untuk Linux modern).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Contoh:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;features&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;gic&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;'v3'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;  &lt;span class="c"&gt;&amp;lt;!-- GIC v3 untuk ARM --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/features&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;Virtualisasi Berbasis Hardware&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;hap&lt;/code&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kepanjangan&lt;/strong&gt;: Hardware Assisted Paging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengaktifkan nested paging (AMD-V NPT/Intel EPT) untuk manajemen memori yang lebih cepat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Default&lt;/strong&gt;: Aktif jika hardware mendukung.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Optimasi Hyper-V (Windows Guests)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;hyperv.relaxed.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengurangi pengecekan timing untuk meningkatkan performa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target&lt;/strong&gt;: OS yang di-"enlightened" (Windows/Linux dengan Hyper-V drivers).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;hyperv.reset.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Memungkinkan guest mereset state VM secara software.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;hyperv.spinlocks.retries&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menentukan jumlah retry spinlock sebelum memberi notifikasi ke Hyper-V.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh Nilai&lt;/strong&gt;: &lt;code&gt;8191&lt;/code&gt; (default).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;hyperv.spinlocks.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengaktifkan paravirtual spinlocks untuk SMP guests.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;hyperv.synic.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengaktifkan Synthetic Interrupt Controller (SynIC) untuk notifikasi inter-processor.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;hyperv.vapic.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Virtual APIC untuk akses APIC tanpa exit ke hypervisor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dampak&lt;/strong&gt;: Mengurangi overhead interrupt.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Contoh:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;features&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;hyperv&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;relaxed&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;                   &lt;span class="c"&gt;&amp;lt;!-- hyperv.relaxed.state --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;vapic&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;                     &lt;span class="c"&gt;&amp;lt;!-- hyperv.vapic.state --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;spinlocks&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt; &lt;span class="na"&gt;retries=&lt;/span&gt;&lt;span class="s"&gt;'8191'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;  &lt;span class="c"&gt;&amp;lt;!-- hyperv.spinlocks --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;synic&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;                     &lt;span class="c"&gt;&amp;lt;!-- hyperv.synic.state --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;reset&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;                     &lt;span class="c"&gt;&amp;lt;!-- hyperv.reset.state --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/hyperv&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/features&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;KVM-specific&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;kvm.hidden.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menyembunyikan signature KVM dari guest (untuk menghindari deteksi virtualisasi).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contoh&lt;/strong&gt;: Diperlukan untuk macOS guests.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;kvm.hint-dedicated.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Memberi sinyal ke guest bahwa vCPU didedikasikan untuk core fisik tertentu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dampak&lt;/strong&gt;: Optimasi penjadwalan CPU.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;kvm.poll-control.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengontrol polling interrupt guest untuk mengurangi CPU usage.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Contoh:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;features&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;kvm&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;hidden&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;            &lt;span class="c"&gt;&amp;lt;!-- kvm.hidden.state (untuk macOS) --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;poll-control&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;      &lt;span class="c"&gt;&amp;lt;!-- kvm.poll-control.state --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;hint-dedicated&lt;/span&gt; &lt;span class="na"&gt;state=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;      &lt;span class="c"&gt;&amp;lt;!-- kvm.hint-dedicated.state --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/kvm&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/features&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;Fitur Lainnya&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;ioapic.driver&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Opsi&lt;/strong&gt;: &lt;code&gt;kvm&lt;/code&gt; (default) atau &lt;code&gt;qemu&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Memilih driver emulasi I/O APIC.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;pmu.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kepanjangan&lt;/strong&gt;: Performance Monitoring Unit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengaktifkan profiling performa di guest (misal: &lt;code&gt;perf&lt;/code&gt; di Linux).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risiko&lt;/strong&gt;: Potensi kebocoran informasi ke guest.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;privnet&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Membuat jaringan privat untuk VM (isolasi dari host).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementasi&lt;/strong&gt;: Menghapus default route di guest.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;pvspinlock.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Paravirtual spinlocks untuk mengurangi kontensi lock pada SMP guests.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;smm.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kepanjangan&lt;/strong&gt;: System Management Mode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Diperlukan untuk UEFI Secure Boot atau firmware tertentu.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;viridian&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Mengaktifkan semua fitur Viridian (Hyper-V) untuk Windows guests.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;vmcoreinfo.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Menyisipkan data struktur kernel Linux di memori untuk debugging (misal: &lt;code&gt;crash&lt;/code&gt; utility).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;vmport.state&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungsi&lt;/strong&gt;: Emulasi VMware I/O port untuk kompatibilitas dengan VMware Tools.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;strong&gt;Catatan&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Default: Sebagian besar fitur dinonaktifkan kecuali disebutkan.&lt;/li&gt;
&lt;li&gt;Hypervisor: Beberapa fitur hanya berlaku untuk KVM/QEMU.&lt;/li&gt;
&lt;li&gt;Arsitektur: &lt;code&gt;gic.version&lt;/code&gt; khusus ARM, &lt;code&gt;apic&lt;/code&gt;/&lt;code&gt;pae&lt;/code&gt; untuk x86.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Full XML
&lt;/h2&gt;

&lt;p&gt;Berikut beberapa contoh XML sesuai OS yang digunakan.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rocky 8
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;domain&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"kvm"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;rocky-basic&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;uuid&amp;gt;&lt;/span&gt;746e914a-e22d-4e58-8a76-ae17a766da29&lt;span class="nt"&gt;&amp;lt;/uuid&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;metadata&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;libosinfo:libosinfo&lt;/span&gt; &lt;span class="na"&gt;xmlns:libosinfo=&lt;/span&gt;&lt;span class="s"&gt;"http://libosinfo.org/xmlns/libvirt/domain/1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;libosinfo:os&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"http://rockylinux.org/rocky/8"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/libosinfo:libosinfo&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/metadata&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;memory&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;"GiB"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;6&lt;span class="nt"&gt;&amp;lt;/memory&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;currentMemory&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;"GiB"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/currentMemory&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;vcpu&lt;/span&gt; &lt;span class="na"&gt;current=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;16&lt;span class="nt"&gt;&amp;lt;/vcpu&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;iothreads&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/iothreads&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;os&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;arch=&lt;/span&gt;&lt;span class="s"&gt;"x86_64"&lt;/span&gt; &lt;span class="na"&gt;machine=&lt;/span&gt;&lt;span class="s"&gt;"q35"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;hvm&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"hd"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/os&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;features&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;acpi/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;apic&lt;/span&gt; &lt;span class="na"&gt;eoi=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ioapic&lt;/span&gt; &lt;span class="na"&gt;driver=&lt;/span&gt;&lt;span class="s"&gt;"qemu"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/features&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;cpu&lt;/span&gt; &lt;span class="na"&gt;mode=&lt;/span&gt;&lt;span class="s"&gt;"host-model"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;topology&lt;/span&gt; &lt;span class="na"&gt;sockets=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;dies=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;cores=&lt;/span&gt;&lt;span class="s"&gt;"16"&lt;/span&gt; &lt;span class="na"&gt;threads=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/cpu&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;clock&lt;/span&gt; &lt;span class="na"&gt;offset=&lt;/span&gt;&lt;span class="s"&gt;"utc"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;timer&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"rtc"&lt;/span&gt; &lt;span class="na"&gt;tickpolicy=&lt;/span&gt;&lt;span class="s"&gt;"catchup"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;timer&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"pit"&lt;/span&gt; &lt;span class="na"&gt;tickpolicy=&lt;/span&gt;&lt;span class="s"&gt;"delay"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;timer&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"hpet"&lt;/span&gt; &lt;span class="na"&gt;present=&lt;/span&gt;&lt;span class="s"&gt;"no"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/clock&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;pm&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;suspend-to-mem&lt;/span&gt; &lt;span class="na"&gt;enabled=&lt;/span&gt;&lt;span class="s"&gt;"no"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;suspend-to-disk&lt;/span&gt; &lt;span class="na"&gt;enabled=&lt;/span&gt;&lt;span class="s"&gt;"no"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/pm&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;devices&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;emulator&amp;gt;&lt;/span&gt;/usr/bin/qemu-system-x86_64&lt;span class="nt"&gt;&amp;lt;/emulator&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"qemu"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"vmdk"&lt;/span&gt; &lt;span class="na"&gt;cache=&lt;/span&gt;&lt;span class="s"&gt;"none"&lt;/span&gt; &lt;span class="na"&gt;copy_on_read=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt; &lt;span class="na"&gt;io=&lt;/span&gt;&lt;span class="s"&gt;"native"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/media/erfan/vms/rocky/rocky-basic.vmdk"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"sda"&lt;/span&gt; &lt;span class="na"&gt;bus=&lt;/span&gt;&lt;span class="s"&gt;"scsi"&lt;/span&gt; &lt;span class="na"&gt;rotation_rate=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"scsi"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"virtio-scsi"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;queues=&lt;/span&gt;&lt;span class="s"&gt;"16"&lt;/span&gt; &lt;span class="na"&gt;iothread=&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt; &lt;span class="na"&gt;packed=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt; &lt;span class="na"&gt;page_per_vq=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/controller&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"usb"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"qemu-xhci"&lt;/span&gt; &lt;span class="na"&gt;ports=&lt;/span&gt;&lt;span class="s"&gt;"15"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;interface&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"network"&lt;/span&gt; &lt;span class="na"&gt;trustGuestRxFilters=&lt;/span&gt;&lt;span class="s"&gt;"yes"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;network=&lt;/span&gt;&lt;span class="s"&gt;"net0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;mac&lt;/span&gt; &lt;span class="na"&gt;address=&lt;/span&gt;&lt;span class="s"&gt;"00:b1:cc:cb:aa:6d"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;model&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;filterref&lt;/span&gt; &lt;span class="na"&gt;filter=&lt;/span&gt;&lt;span class="s"&gt;"clean-traffic"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;mtu&lt;/span&gt; &lt;span class="na"&gt;size=&lt;/span&gt;&lt;span class="s"&gt;"9000"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'vhost'&lt;/span&gt; &lt;span class="na"&gt;txmode=&lt;/span&gt;&lt;span class="s"&gt;'iothread'&lt;/span&gt; &lt;span class="na"&gt;ioeventfd=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt; &lt;span class="na"&gt;event_idx=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;queues=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;rx_queue_size=&lt;/span&gt;&lt;span class="s"&gt;'256'&lt;/span&gt; &lt;span class="na"&gt;tx_queue_size=&lt;/span&gt;&lt;span class="s"&gt;'256'&lt;/span&gt; &lt;span class="na"&gt;packed=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt; &lt;span class="na"&gt;page_per_vq=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;host&lt;/span&gt; &lt;span class="na"&gt;csum=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;gso=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;tso4=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;tso6=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;ecn=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;ufo=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;mrg_rxbuf=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;guest&lt;/span&gt; &lt;span class="na"&gt;csum=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;tso4=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;tso6=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;ecn=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;ufo=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/driver&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;coalesce&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;rx&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;frames&lt;/span&gt; &lt;span class="na"&gt;max=&lt;/span&gt;&lt;span class="s"&gt;'7'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/rx&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/coalesce&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/interface&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;console&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pty"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;channel&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"unix"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;mode=&lt;/span&gt;&lt;span class="s"&gt;"bind"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"org.qemu.guest_agent.0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/channel&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"tablet"&lt;/span&gt; &lt;span class="na"&gt;bus=&lt;/span&gt;&lt;span class="s"&gt;"usb"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;graphics&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"vnc"&lt;/span&gt; &lt;span class="na"&gt;port=&lt;/span&gt;&lt;span class="s"&gt;"-1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;video&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;model&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"cirrus"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/video&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;watchdog&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"itco"&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"reset"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;memballoon&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rng&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;backend&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"random"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;/dev/urandom&lt;span class="nt"&gt;&amp;lt;/backend&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rng&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/devices&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/domain&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Ubuntu 24.04
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;domain&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"kvm"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;ubuntu-basic&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;uuid&amp;gt;&lt;/span&gt;09c89f8b-214b-4cef-bda1-3ca9d7689851&lt;span class="nt"&gt;&amp;lt;/uuid&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;metadata&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;libosinfo:libosinfo&lt;/span&gt; &lt;span class="na"&gt;xmlns:libosinfo=&lt;/span&gt;&lt;span class="s"&gt;"http://libosinfo.org/xmlns/libvirt/domain/1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;libosinfo:os&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"http://ubuntu.com/ubuntu/24.04"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/libosinfo:libosinfo&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/metadata&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;memory&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;"GiB"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;6&lt;span class="nt"&gt;&amp;lt;/memory&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;currentMemory&lt;/span&gt; &lt;span class="na"&gt;unit=&lt;/span&gt;&lt;span class="s"&gt;"GiB"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/currentMemory&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;vcpu&lt;/span&gt; &lt;span class="na"&gt;current=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;16&lt;span class="nt"&gt;&amp;lt;/vcpu&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;iothreads&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/iothreads&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;os&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;type&lt;/span&gt; &lt;span class="na"&gt;arch=&lt;/span&gt;&lt;span class="s"&gt;"x86_64"&lt;/span&gt; &lt;span class="na"&gt;machine=&lt;/span&gt;&lt;span class="s"&gt;"q35"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;hvm&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;boot&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"hd"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/os&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;features&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;acpi/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;apic&lt;/span&gt; &lt;span class="na"&gt;eoi=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ioapic&lt;/span&gt; &lt;span class="na"&gt;driver=&lt;/span&gt;&lt;span class="s"&gt;"qemu"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/features&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;cpu&lt;/span&gt; &lt;span class="na"&gt;mode=&lt;/span&gt;&lt;span class="s"&gt;"host-model"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;topology&lt;/span&gt; &lt;span class="na"&gt;sockets=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;dies=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;cores=&lt;/span&gt;&lt;span class="s"&gt;"16"&lt;/span&gt; &lt;span class="na"&gt;threads=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/cpu&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;clock&lt;/span&gt; &lt;span class="na"&gt;offset=&lt;/span&gt;&lt;span class="s"&gt;"utc"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;timer&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"rtc"&lt;/span&gt; &lt;span class="na"&gt;tickpolicy=&lt;/span&gt;&lt;span class="s"&gt;"catchup"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;timer&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"pit"&lt;/span&gt; &lt;span class="na"&gt;tickpolicy=&lt;/span&gt;&lt;span class="s"&gt;"delay"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;timer&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"hpet"&lt;/span&gt; &lt;span class="na"&gt;present=&lt;/span&gt;&lt;span class="s"&gt;"no"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/clock&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;pm&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;suspend-to-mem&lt;/span&gt; &lt;span class="na"&gt;enabled=&lt;/span&gt;&lt;span class="s"&gt;"no"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;suspend-to-disk&lt;/span&gt; &lt;span class="na"&gt;enabled=&lt;/span&gt;&lt;span class="s"&gt;"no"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/pm&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;devices&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;emulator&amp;gt;&lt;/span&gt;/usr/bin/qemu-system-x86_64&lt;span class="nt"&gt;&amp;lt;/emulator&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;disk&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"file"&lt;/span&gt; &lt;span class="na"&gt;device=&lt;/span&gt;&lt;span class="s"&gt;"disk"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"qemu"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"vmdk"&lt;/span&gt; &lt;span class="na"&gt;cache=&lt;/span&gt;&lt;span class="s"&gt;"none"&lt;/span&gt; &lt;span class="na"&gt;copy_on_read=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt; &lt;span class="na"&gt;io=&lt;/span&gt;&lt;span class="s"&gt;"native"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;file=&lt;/span&gt;&lt;span class="s"&gt;"/media/erfan/vms/ubuntu/ubuntu-basic.vmdk"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;dev=&lt;/span&gt;&lt;span class="s"&gt;"sda"&lt;/span&gt; &lt;span class="na"&gt;bus=&lt;/span&gt;&lt;span class="s"&gt;"scsi"&lt;/span&gt; &lt;span class="na"&gt;rotation_rate=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/disk&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"scsi"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"virtio-scsi"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;queues=&lt;/span&gt;&lt;span class="s"&gt;"16"&lt;/span&gt; &lt;span class="na"&gt;iothread=&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt; &lt;span class="na"&gt;packed=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt; &lt;span class="na"&gt;page_per_vq=&lt;/span&gt;&lt;span class="s"&gt;"on"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/controller&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"usb"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"qemu-xhci"&lt;/span&gt; &lt;span class="na"&gt;ports=&lt;/span&gt;&lt;span class="s"&gt;"15"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;controller&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pci"&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"pcie-root-port"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;interface&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"network"&lt;/span&gt; &lt;span class="na"&gt;trustGuestRxFilters=&lt;/span&gt;&lt;span class="s"&gt;"yes"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;network=&lt;/span&gt;&lt;span class="s"&gt;"net0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;mac&lt;/span&gt; &lt;span class="na"&gt;address=&lt;/span&gt;&lt;span class="s"&gt;"00:50:56:3e:83:c7"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;model&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;filterref&lt;/span&gt; &lt;span class="na"&gt;filter=&lt;/span&gt;&lt;span class="s"&gt;"clean-traffic"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;mtu&lt;/span&gt; &lt;span class="na"&gt;size=&lt;/span&gt;&lt;span class="s"&gt;"9000"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;driver&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'vhost'&lt;/span&gt; &lt;span class="na"&gt;txmode=&lt;/span&gt;&lt;span class="s"&gt;'iothread'&lt;/span&gt; &lt;span class="na"&gt;ioeventfd=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt; &lt;span class="na"&gt;event_idx=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;queues=&lt;/span&gt;&lt;span class="s"&gt;'2'&lt;/span&gt; &lt;span class="na"&gt;rx_queue_size=&lt;/span&gt;&lt;span class="s"&gt;'256'&lt;/span&gt; &lt;span class="na"&gt;tx_queue_size=&lt;/span&gt;&lt;span class="s"&gt;'256'&lt;/span&gt; &lt;span class="na"&gt;packed=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt; &lt;span class="na"&gt;page_per_vq=&lt;/span&gt;&lt;span class="s"&gt;'on'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;host&lt;/span&gt; &lt;span class="na"&gt;csum=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;gso=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;tso4=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;tso6=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;ecn=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;ufo=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;mrg_rxbuf=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;guest&lt;/span&gt; &lt;span class="na"&gt;csum=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;tso4=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;tso6=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;ecn=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt; &lt;span class="na"&gt;ufo=&lt;/span&gt;&lt;span class="s"&gt;'off'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/driver&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;coalesce&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;rx&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;frames&lt;/span&gt; &lt;span class="na"&gt;max=&lt;/span&gt;&lt;span class="s"&gt;'7'&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/rx&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/coalesce&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/interface&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;console&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"pty"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;channel&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"unix"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;mode=&lt;/span&gt;&lt;span class="s"&gt;"bind"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;target&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"org.qemu.guest_agent.0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/channel&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"tablet"&lt;/span&gt; &lt;span class="na"&gt;bus=&lt;/span&gt;&lt;span class="s"&gt;"usb"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;graphics&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"vnc"&lt;/span&gt; &lt;span class="na"&gt;port=&lt;/span&gt;&lt;span class="s"&gt;"-1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;video&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;model&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"cirrus"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/video&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;watchdog&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"itco"&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"reset"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;memballoon&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rng&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"virtio"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;backend&lt;/span&gt; &lt;span class="na"&gt;model=&lt;/span&gt;&lt;span class="s"&gt;"random"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;/dev/urandom&lt;span class="nt"&gt;&amp;lt;/backend&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rng&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/devices&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/domain&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>libvirt</category>
      <category>kvm</category>
    </item>
    <item>
      <title>Menjalankan GitHub Actions Secara Lokal dengan Act</title>
      <dc:creator>erfandwi</dc:creator>
      <pubDate>Mon, 14 Jul 2025 16:24:33 +0000</pubDate>
      <link>https://forem.com/bisacloud/menjalankan-github-actions-secara-lokal-dengan-act-4oag</link>
      <guid>https://forem.com/bisacloud/menjalankan-github-actions-secara-lokal-dengan-act-4oag</guid>
      <description>&lt;p&gt;Act adalah alat yang memungkinkan Anda menjalankan GitHub Actions secara lokal di komputer sendiri. Dengan Act, Anda dapat dengan mudah menguji dan men-debug skrip GitHub Actions sebelum diterapkan ke produksi.&lt;/p&gt;

&lt;p&gt;Berikut adalah cara menggunakan Act untuk menjalankan GitHub Actions secara lokal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install Act
&lt;/h2&gt;

&lt;p&gt;Install Act menggunakan script berikut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://raw.githubusercontent.com/nektos/act/master/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Run GitHub Actions using Act
&lt;/h2&gt;

&lt;p&gt;Clone sample repository &lt;a href="https://github.com/cplee/github-actions-demo" rel="noopener noreferrer"&gt;github-actions-demo&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/cplee/github-actions-demo.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Masuk ke folder github-actions-demo, kemudian jalankan perintah &lt;code&gt;act -l&lt;/code&gt; untuk melihat list actions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# act -l
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock'
Stage  Job ID  Job name  Workflow name  Workflow file  Events
0      test    test      CI             main.yml       push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Untuk menjalankan pipelines gunakan perintah.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;act
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Atau Anda bisa menjalankan job tertentu dengan perintah.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;act &lt;span class="nt"&gt;-j&lt;/span&gt; &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Untuk menjalankan pipelines dengan environment tertentu. (default .env)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;act &lt;span class="nt"&gt;--env-file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;my-custom.env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Untuk menjalankan pipelines dengan secret tertentu. (default .secret)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;act &lt;span class="nt"&gt;--secret-file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;my-custom.secrets
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>git</category>
      <category>github</category>
      <category>githubactions</category>
      <category>gitlab</category>
    </item>
    <item>
      <title>Membangun Git Server Sendiri dengan Gitea</title>
      <dc:creator>erfandwi</dc:creator>
      <pubDate>Mon, 14 Jul 2025 16:03:08 +0000</pubDate>
      <link>https://forem.com/bisacloud/membangun-git-server-sendiri-dengan-gitea-3p9j</link>
      <guid>https://forem.com/bisacloud/membangun-git-server-sendiri-dengan-gitea-3p9j</guid>
      <description>&lt;p&gt;Gitea adalah layanan manajemen kode sumber (source code management) berbasis Git, mirip seperti GitHub, GitLab, atau Bitbucket. Bedanya, Gitea bersifat ringan, open-source, dan dapat di-hosting secara mandiri (self-hosted).&lt;br&gt;
Gitea bisa diinstal menggunakan binary, Docker, atau package manager, serta mendukung berbagai platform seperti Windows, macOS, Linux, ARM, dan lainnya.&lt;/p&gt;

&lt;p&gt;Dalam panduan ini, kita akan menginstal Gitea menggunakan Docker, agar memudahkan instalasi runner untuk menjalankan action pipelines.&lt;/p&gt;
&lt;h2&gt;
  
  
  Persiapan
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Membuat User Git
&lt;/h3&gt;

&lt;p&gt;Buat user baru khusus untuk Git dengan perintah berikut:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;adduser &lt;span class="nt"&gt;--shell&lt;/span&gt; /bin/bash &lt;span class="nt"&gt;--disabled-password&lt;/span&gt; &lt;span class="nt"&gt;--home&lt;/span&gt; /home/git git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Jika server Anda memiliki user dengan UID 1000, sebaiknya hapus user tersebut terlebih dahulu dan pastikan user itu tidak digunakan untuk login ke server.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. Mengubah Port Default SSH
&lt;/h3&gt;

&lt;p&gt;Untuk menghindari konflik, ubah port SSH standar sehingga port 22 dapat digunakan untuk layanan Git. Edit konfigurasi SSH:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano /etc/ssh/sshd_config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cari baris &lt;code&gt;Port&lt;/code&gt; dan ubah nilainya, misalnya menjadi:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Port 2222
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Simpan perubahan dan restart layanan SSH agar konfigurasi baru diterapkan.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalasi Docker
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Menginstal Docker
&lt;/h3&gt;

&lt;p&gt;Gunakan perintah berikut untuk menginstal Docker:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-L&lt;/span&gt; get.docker.com | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Verifikasi Instalasi
&lt;/h3&gt;

&lt;p&gt;Setelah instalasi selesai, verifikasi bahwa Docker telah terinstal dengan menjalankan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jika informasi versi Docker muncul, berarti instalasi berhasil.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalasi Gitea
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Membuat Folder Gitea
&lt;/h3&gt;

&lt;p&gt;Buat folder untuk menyimpan file &lt;code&gt;docker-compose.yml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;gitea
&lt;span class="nb"&gt;cd &lt;/span&gt;gitea
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Menyiapkan Docker Compose
&lt;/h3&gt;

&lt;p&gt;Buat file &lt;code&gt;docker-compose.yml&lt;/code&gt; dan isi dengan konfigurasi berikut:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;networks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;gitea&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;driver&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bridge&lt;/span&gt;

&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;gitea&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;docker.gitea.com/gitea:1.23.6&lt;/span&gt;
    &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;USER_UID&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1000&lt;/span&gt;
      &lt;span class="na"&gt;USER_GID&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1000&lt;/span&gt;
      &lt;span class="na"&gt;GITEA__database__DB_TYPE&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;postgres&lt;/span&gt;
      &lt;span class="na"&gt;GITEA__database__HOST&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;db:5432&lt;/span&gt;
      &lt;span class="na"&gt;GITEA__database__NAME&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea&lt;/span&gt;
      &lt;span class="na"&gt;GITEA__database__USER&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea&lt;/span&gt;
      &lt;span class="na"&gt;GITEA__database__PASSWD&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;always&lt;/span&gt;
    &lt;span class="na"&gt;networks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;gitea&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./gitea/ssh:/data/ssh&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;/home/git/.ssh:/data/git/.ssh&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;/home/git/repositories:/data/git/repositories&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;/home/git/lfs:/data/git/lfs&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;/home/git/gitea:/data/gitea&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;/etc/timezone:/etc/timezone:ro&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;/etc/localtime:/etc/localtime:ro&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;80:3000"&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;22:22"&lt;/span&gt;
    &lt;span class="na"&gt;depends_on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;db&lt;/span&gt;

  &lt;span class="na"&gt;db&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;postgres:14&lt;/span&gt;
    &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea_db&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;always&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;POSTGRES_USER&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea&lt;/span&gt;
      &lt;span class="na"&gt;POSTGRES_PASSWORD&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea&lt;/span&gt;
      &lt;span class="na"&gt;POSTGRES_DB&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea&lt;/span&gt;
    &lt;span class="na"&gt;networks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;gitea&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./postgres:/var/lib/postgresql/data&lt;/span&gt;

  &lt;span class="na"&gt;runner&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea/act_runner&lt;/span&gt;
    &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gitea_runner&lt;/span&gt;
    &lt;span class="na"&gt;links&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;docker-in-docker&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;unless-stopped&lt;/span&gt;
    &lt;span class="na"&gt;privileged&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;depends_on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;gitea&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;service_started&lt;/span&gt;
      &lt;span class="na"&gt;docker-in-docker&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;condition&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;service_started&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;./data/act_runner:/data&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;GITEA_INSTANCE_URL&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;http://&amp;lt;IP_or_domain&amp;gt;&lt;/span&gt;
      &lt;span class="na"&gt;DOCKER_HOST&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;tcp://docker-in-docker:2375&lt;/span&gt;
      &lt;span class="na"&gt;GITEA_RUNNER_REGISTRATION_TOKEN&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;registration_token&amp;gt;&lt;/span&gt;

  &lt;span class="na"&gt;docker-in-docker&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;docker:dind&lt;/span&gt;
    &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;docker_dind&lt;/span&gt;
    &lt;span class="na"&gt;privileged&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
    &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;dockerd&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;-H&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;tcp://0.0.0.0:2375&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;--tls=false&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;unless-stopped&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Catatan:&lt;/strong&gt;&lt;br&gt;
Jangan lupa mengganti &lt;code&gt;&amp;lt;IP_or_domain&amp;gt;&lt;/code&gt; dan &lt;code&gt;&amp;lt;registration_token&amp;gt;&lt;/code&gt; sesuai dengan server Anda.&lt;br&gt;
Jika memungkinkan, disarankan untuk &lt;strong&gt;memisahkan runner dan docker-in-docker&lt;/strong&gt; ke server atau mesin berbeda dari Gitea.&lt;br&gt;
Tujuannya adalah untuk menjaga performa Gitea tetap optimal, terutama saat runner menjalankan proses build yang berat.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3. Menjalankan Gitea
&lt;/h3&gt;

&lt;p&gt;Setelah konfigurasi selesai, jalankan Gitea menggunakan perintah:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Setup Gitea Melalui Browser
&lt;/h3&gt;

&lt;p&gt;Buka browser dan akses &lt;code&gt;http://&amp;lt;IP_or_domain&amp;gt;&lt;/code&gt;, kemudian ikuti langkah-langkah setup Gitea.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9s0e0nnt7re144t0zmt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9s0e0nnt7re144t0zmt.png" alt="Setup Gitea" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pada tahap setup, Anda dapat membuat akun administrator.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpau0fefw6psdtm408unp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpau0fefw6psdtm408unp.png" alt="Create Admin Account" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setelah proses instalasi selesai, Anda sudah bisa mulai membuat repository pertama Anda.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ll0dz791advlvslpkbk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ll0dz791advlvslpkbk.png" alt="Setup Selesai" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalasi Gitea Runner
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Mendapatkan Registration Token
&lt;/h3&gt;

&lt;p&gt;Untuk mendapatkan &lt;strong&gt;Registration Token&lt;/strong&gt;, buka URL berikut melalui browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://&amp;lt;IP_or_domain&amp;gt;/-/admin/actions/runners
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kemudian klik tombol &lt;strong&gt;Create new Runner&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizqoai0l61n226kyx6av.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizqoai0l61n226kyx6av.png" alt="Create Token" width="800" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Salin token yang telah dibuat.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Menambahkan Token ke Docker Compose
&lt;/h3&gt;

&lt;p&gt;Tambahkan token tersebut ke bagian environment pada service &lt;code&gt;runner&lt;/code&gt; di file &lt;code&gt;docker-compose.yml&lt;/code&gt;. Contohnya:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;GITEA_INSTANCE_URL=http://&amp;lt;IP_or_domain&amp;gt;&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;DOCKER_HOST=unix:///var/run/docker.sock&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;GITEA_RUNNER_REGISTRATION_TOKEN=88EineyRnUIbT6IN1YDoNB1KBq2eL3QhxZLMqPaL&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Catatan:&lt;/strong&gt;&lt;br&gt;
Pastikan Anda mengganti &lt;code&gt;&amp;lt;IP_or_domain&amp;gt;&lt;/code&gt; dan &lt;code&gt;GITEA_RUNNER_REGISTRATION_TOKEN&lt;/code&gt; dengan nilai yang sesuai.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3. Restart Gitea
&lt;/h3&gt;

&lt;p&gt;Setelah menambahkan token di file &lt;code&gt;docker-compose.yml&lt;/code&gt;, restart Gitea dengan perintah:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose down
docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Verifikasi Registrasi Runner
&lt;/h3&gt;

&lt;p&gt;Jika token berhasil diregistrasikan, runner akan muncul di daftar seperti gambar berikut:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jxxr1fhy8r15g7wxazc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jxxr1fhy8r15g7wxazc.png" alt="Runner Terdaftar" width="800" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jika runner belum muncul, Anda bisa mencoba me-restart container runner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>git</category>
      <category>github</category>
      <category>gitlab</category>
      <category>githubactions</category>
    </item>
    <item>
      <title>Create Simple Systemd Service in Linux</title>
      <dc:creator>erfandwi</dc:creator>
      <pubDate>Mon, 14 Jul 2025 15:56:20 +0000</pubDate>
      <link>https://forem.com/bisacloud/create-simple-systemd-service-in-linux-1b3</link>
      <guid>https://forem.com/bisacloud/create-simple-systemd-service-in-linux-1b3</guid>
      <description>&lt;p&gt;Terkadang setelah Anda membuat sebuah script, Anda mungkin ingin script tersebut agar dapat dikontrol oleh systemd. Hal ini memungkinkan script untuk dimulai ulang secara otomatis jika prosesnya berhenti, atau untuk dijalankan secara otomatis setiap kali server melakukan booting.&lt;/p&gt;

&lt;p&gt;Berikut adalah cara sederhana untuk membuat service di Linux menggunakan systemd.&lt;/p&gt;

&lt;h3&gt;
  
  
  Langkah 1: Buat Script Bash
&lt;/h3&gt;

&lt;p&gt;Pertama, buat script bash untuk mengatur beberapa parameter kernel. Lalu, simpan script di &lt;code&gt;/opt/myscript/kernel.sh&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo &lt;/span&gt;1 &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;/sys/kernel/mm/ksm/run
&lt;span class="nb"&gt;echo &lt;/span&gt;1000 &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;/sys/kernel/mm/ksm/sleep_millisecs
&lt;span class="nb"&gt;echo &lt;/span&gt;never &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /sys/kernel/mm/transparent_hugepage/enabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Langkah 2: Buat File Service
&lt;/h3&gt;

&lt;p&gt;Selanjutnya, buat file &lt;code&gt;kernel.service&lt;/code&gt; di dalam folder &lt;code&gt;/etc/systemd/system&lt;/code&gt; dengan perintah berikut:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano /etc/systemd/system/kernel.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kemudian masukkan konfigurasi berikut:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="nn"&gt;[Unit]&lt;/span&gt;
&lt;span class="py"&gt;Description&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;Optimasi Kernel&lt;/span&gt;
&lt;span class="py"&gt;After&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;syslog.target network.target remote-fs.target nss-lookup.target&lt;/span&gt;

&lt;span class="nn"&gt;[Service]&lt;/span&gt;
&lt;span class="py"&gt;Type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;simple&lt;/span&gt;
&lt;span class="py"&gt;User&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;root&lt;/span&gt;
&lt;span class="py"&gt;ExecStart&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/bin/bash /opt/myscript/kernel.sh&lt;/span&gt;
&lt;span class="py"&gt;Restart&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;on-failure&lt;/span&gt;
&lt;span class="py"&gt;RestartSec&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;5&lt;/span&gt;
&lt;span class="py"&gt;StandardOutput&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;syslog&lt;/span&gt;
&lt;span class="py"&gt;StandardError&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;syslog&lt;/span&gt;
&lt;span class="py"&gt;SyslogIdentifier&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;myscript&lt;/span&gt;

&lt;span class="nn"&gt;[Install]&lt;/span&gt;
&lt;span class="py"&gt;WantedBy&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;multi-user.target&lt;/span&gt;
&lt;span class="py"&gt;Alias&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;kernel.service&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Penjelasan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Description&lt;/code&gt;: Nama deskripsi service&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;After&lt;/code&gt;: Service akan mulai setelah network aktif&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Type=simple&lt;/code&gt;: Service berjalan di foreground&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;User&lt;/code&gt;: Akun yang digunakan untuk menjalankan service&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ExecStart&lt;/code&gt;: Perintah untuk menjalankan script&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Restart&lt;/code&gt;: Kebijakan restart otomatis&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;RestartSec&lt;/code&gt;: Waktu tunggu sebelum restart&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;StandardOutput&lt;/code&gt; &amp;amp; &lt;code&gt;StandardError&lt;/code&gt;: Konfigurasi output log&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anda juga dapat membuat file service dengan kondisi seperti:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Untuk script yang hanya perlu berjalan sekali saat boot.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;  &lt;span class="nn"&gt;[Service]&lt;/span&gt;
  &lt;span class="py"&gt;Type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;oneshot&lt;/span&gt;
  &lt;span class="py"&gt;ExecStart&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/path/to/script.sh&lt;/span&gt;
  &lt;span class="py"&gt;RemainAfterExit&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;yes&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Jika script membutuhkan environment variable tertentu:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;  &lt;span class="nn"&gt;[Service]&lt;/span&gt;
  &lt;span class="err"&gt;...&lt;/span&gt;
  &lt;span class="py"&gt;Environment&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"MY_VARIABLE=my_value"&lt;/span&gt;
  &lt;span class="py"&gt;EnvironmentFile&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/path/to/env/file&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Langkah 3: Jalankan Service
&lt;/h3&gt;

&lt;p&gt;Setelah file service dibuat, jalankan perintah berikut untuk mengaktifkan dan menjalankan service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x /opt/myscript/kernel.sh
systemctl daemon-reload
systemctl &lt;span class="nb"&gt;enable &lt;/span&gt;kernel.service
systemctl start kernel.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>linux</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Implementasi Autoscaling VM di Azure</title>
      <dc:creator>erfandwi</dc:creator>
      <pubDate>Mon, 14 Jul 2025 15:52:08 +0000</pubDate>
      <link>https://forem.com/bisacloud/implementasi-autoscaling-vm-di-azure-3kc1</link>
      <guid>https://forem.com/bisacloud/implementasi-autoscaling-vm-di-azure-3kc1</guid>
      <description>&lt;p&gt;Azure Virtual Machine Scale Sets (VMSS) adalah fitur dari Microsoft Azure untuk secara otomatis menyesuaikan jumlah Virtual Machine (VM) dalam sebuah grup (scale set) berdasarkan kriteria tertentu. Misalnya, VMSS dapat menambahkan instance VM (scale out) ketika penggunaan CPU melebihi 70%, dan menguranginya (scale in) saat penggunaan CPU turun di bawah 30%.&lt;/p&gt;

&lt;h2&gt;
  
  
  Membuat Virtual Machine Scale Set
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Buat Resource Group
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az group create &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; &lt;span class="nv"&gt;$MY_RESOURCE_GROUP_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--location&lt;/span&gt; &amp;lt;REGION&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Buat Virtual Machine Scale Set
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az vmss create &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource-group&lt;/span&gt; &lt;span class="nv"&gt;$MY_RESOURCE_GROUP_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; &lt;span class="nv"&gt;$MY_SCALE_SET_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--vnet-name&lt;/span&gt; &lt;span class="nv"&gt;$VNET_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--subnet&lt;/span&gt; &lt;span class="nv"&gt;$SUBNET_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--nsg&lt;/span&gt; &lt;span class="nv"&gt;$NSG_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--image&lt;/span&gt; Ubuntu2404 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--vm-sku&lt;/span&gt; Standard_B1s &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--lb-sku&lt;/span&gt; Basic &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--storage-sku&lt;/span&gt; Standard_LRS &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--orchestration-mode&lt;/span&gt; Flexible &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--instance-count&lt;/span&gt; 2 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--admin-username&lt;/span&gt; azureuser &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--ssh-key-values&lt;/span&gt; @&amp;lt;path-ke-file-public-key&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--security-type&lt;/span&gt; TrustedLaunch &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--enable-secure-boot&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--enable-vtpm&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Penjelasan Parameter:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--resource-group $MY_RESOURCE_GROUP_NAME&lt;/code&gt;: Menentukan &lt;strong&gt;resource group&lt;/strong&gt; tempat VMSS akan dibuat.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--name $MY_SCALE_SET_NAME&lt;/code&gt;: Menentukan &lt;strong&gt;nama&lt;/strong&gt; dari Virtual Machine Scale Set.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--vnet-name $VNET_NAME&lt;/code&gt;: Nama &lt;strong&gt;Virtual Network (VNet)&lt;/strong&gt; tempat VMSS akan dihubungkan.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--subnet $SUBNET_NAME&lt;/code&gt;: Nama &lt;strong&gt;subnet&lt;/strong&gt; di dalam VNet yang akan digunakan VMSS.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--nsg $NSG_NAME&lt;/code&gt;: Nama &lt;strong&gt;Network Security Group (NSG)&lt;/strong&gt; yang akan diterapkan pada subnet.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--image Ubuntu2404&lt;/code&gt;: Menggunakan &lt;strong&gt;image Ubuntu 24.04 LTS&lt;/strong&gt; untuk VM yang dibuat dalam scale set.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--vm-sku Standard_B1s&lt;/code&gt;: Menentukan &lt;strong&gt;spesifikasi VM&lt;/strong&gt; (CPU, RAM, dll). &lt;code&gt;Standard_B1s&lt;/code&gt;, &lt;code&gt;Standard_B2s&lt;/code&gt; adalah tipe VM ekonomis.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--lb-sku Basic&lt;/code&gt;: Mengatur Load Balancer ke opsi tipe &lt;code&gt;Basic&lt;/code&gt; atau &lt;code&gt;Standard&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--storage-sku Standard_LRS&lt;/code&gt;: Menggunakan &lt;strong&gt;tipe penyimpanan HDD standar&lt;/strong&gt; dengan replikasi &lt;strong&gt;Locally Redundant Storage (LRS)&lt;/strong&gt;. &lt;code&gt;Standard_LRS&lt;/code&gt;, &lt;code&gt;StandardSSD_LRS&lt;/code&gt; adalah tipe storage ekonomis.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--orchestration-mode Flexible&lt;/code&gt;: Mode &lt;strong&gt;orchestration Flexible&lt;/strong&gt;, memungkinkan VM bekerja lebih independen (misalnya untuk workload stateful atau availability zones).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--instance-count 2&lt;/code&gt;: Jumlah instance (VM) yang akan dibuat di dalam scale set, dalam hal ini &lt;strong&gt;2 VM&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--admin-username azureuser&lt;/code&gt;: Membuat &lt;strong&gt;username admin&lt;/strong&gt; bernama &lt;code&gt;azureuser&lt;/code&gt; untuk akses VM.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--ssh-key-values @&amp;lt;path-ke-file-public-key&amp;gt;&lt;/code&gt;: Menggunakan &lt;strong&gt;SSH public key&lt;/strong&gt; untuk autentikasi (menggantikan password).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--security-type TrustedLaunch&lt;/code&gt;: Mengaktifkan fitur keamanan &lt;strong&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/virtual-machines/trusted-launch" rel="noopener noreferrer"&gt;Trusted Launch&lt;/a&gt;&lt;/strong&gt; untuk proteksi tingkat firmware.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--enable-secure-boot true&lt;/code&gt;: Mengaktifkan &lt;strong&gt;Secure Boot&lt;/strong&gt; untuk memastikan hanya &lt;strong&gt;OS yang terenkripsi dan terverifikasi&lt;/strong&gt; yang bisa boot.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--enable-vtpm true&lt;/code&gt;: Mengaktifkan &lt;strong&gt;virtual Trusted Platform Module (vTPM)&lt;/strong&gt;, menyediakan &lt;strong&gt;enkripsi tingkat hardware&lt;/strong&gt; untuk perlindungan tambahan seperti disk encryption.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Menentukan Profil Autoscale
&lt;/h2&gt;

&lt;p&gt;Buat profil Auto-Scaling, misalnya dengan menetapkan kapasitas minimum 2 instance VM dan maksimum 10 instance:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az monitor autoscale create &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource-group&lt;/span&gt; &lt;span class="nv"&gt;$MY_RESOURCE_GROUP_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource&lt;/span&gt; &lt;span class="nv"&gt;$MY_SCALE_SET_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource-type&lt;/span&gt; Microsoft.Compute/virtualMachineScaleSets &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; autoscale &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--min-count&lt;/span&gt; 2 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--max-count&lt;/span&gt; 10 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--count&lt;/span&gt; 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Keterangan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--count&lt;/code&gt; adalah jumlah instance awal saat autoscale pertama kali diterapkan.&lt;/li&gt;
&lt;li&gt;Pastikan resource scale set sudah dibuat sebelumnya.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Membuat Aturan Autoscale
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Scale Out (Menambah Jumlah Instance)
&lt;/h3&gt;

&lt;p&gt;Contoh rule untuk melakukan scale out jika rata-rata penggunaan CPU melebihi 70% selama 5 menit. Jika kondisi ini terpenuhi, jumlah instance akan bertambah sebanyak 3:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az monitor autoscale rule create &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource-group&lt;/span&gt; &lt;span class="nv"&gt;$MY_RESOURCE_GROUP_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--autoscale-name&lt;/span&gt; autoscale &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--condition&lt;/span&gt; &lt;span class="s2"&gt;"Percentage CPU &amp;gt; 70 avg 5m"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--scale&lt;/span&gt; out 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Scale In (Mengurangi Jumlah Instance)
&lt;/h3&gt;

&lt;p&gt;Contoh rule untuk melakukan scale in jika rata-rata penggunaan CPU kurang dari 30% selama 5 menit. Jika kondisi ini terpenuhi, jumlah instance akan dikurangi sebanyak 1:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az monitor autoscale rule create &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource-group&lt;/span&gt; &lt;span class="nv"&gt;$MY_RESOURCE_GROUP_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--autoscale-name&lt;/span&gt; autoscale &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--condition&lt;/span&gt; &lt;span class="s2"&gt;"Percentage CPU &amp;lt; 30 avg 5m"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--scale&lt;/span&gt; &lt;span class="k"&gt;in &lt;/span&gt;1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Mensimulasikan Beban CPU
&lt;/h2&gt;

&lt;p&gt;Untuk mensimulasikan beban CPU, Anda dapat menjalankan skrip berikut di instance VM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;1..3&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nb"&gt;yes&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /dev/null &amp;amp;
&lt;span class="k"&gt;done
&lt;/span&gt;&lt;span class="nb"&gt;sleep &lt;/span&gt;3600
pkill &lt;span class="nb"&gt;yes&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Penjelasan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Perintah &lt;code&gt;yes &amp;gt; /dev/null &amp;amp;&lt;/code&gt; digunakan untuk membebani CPU.&lt;/li&gt;
&lt;li&gt;Tiga proses dijalankan secara paralel untuk meningkatkan beban.&lt;/li&gt;
&lt;li&gt;Proses akan berjalan selama 1 jam (&lt;code&gt;3600&lt;/code&gt; detik), kemudian dihentikan dengan &lt;code&gt;pkill yes&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tunggu sekitar 5 menit (agar autoscaling memiliki waktu untuk bereaksi), lalu jalankan perintah berikut untuk memeriksa jumlah instance VM saat ini:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az vmss list-instances &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource-group&lt;/span&gt; &lt;span class="nv"&gt;$MY_RESOURCE_GROUP_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; &lt;span class="nv"&gt;$MY_SCALE_SET_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--output&lt;/span&gt; table
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Contoh output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;InstanceId              Location       Name                    ResourceGroup
----------------------  -------------  ----------------------  ------------------
web-autoscale_0ea45584  southeastasia  web-autoscale_0ea45584  bisacloud-asia
web-autoscale_4b050a16  southeastasia  web-autoscale_4b050a16  bisacloud-asia
web-autoscale_5fd67caf  southeastasia  web-autoscale_5fd67caf  bisacloud-asia
web-autoscale_72615833  southeastasia  web-autoscale_72615833  bisacloud-asia
web-autoscale_be9dbc5b  southeastasia  web-autoscale_be9dbc5b  bisacloud-asia
web-autoscale_c2b76515  southeastasia  web-autoscale_c2b76515  bisacloud-asia
web-autoscale_f2851a81  southeastasia  web-autoscale_f2851a81  bisacloud-asia
web-autoscale_f755aebb  southeastasia  web-autoscale_f755aebb  bisacloud-asia
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anda juga dapat menggunakan perintah berikut untuk melihat status autoscale log atau metrik CPU:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az monitor metrics list &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource&lt;/span&gt; /subscriptions/&amp;lt;subscription-id&amp;gt;/resourceGroups/&lt;span class="nv"&gt;$MY_RESOURCE_GROUP_NAME&lt;/span&gt;/providers/Microsoft.Compute/virtualMachineScaleSets/&lt;span class="nv"&gt;$MY_SCALE_SET_NAME&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--metric&lt;/span&gt; &lt;span class="s2"&gt;"Percentage CPU"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--interval&lt;/span&gt; PT1M &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--output&lt;/span&gt; table
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Menghentikan VM Scale Set
az vmss stop --resource-group $myResourceGroup --name $myScaleSet

# Menyalakan VM Scale Set
az vmss start --resource-group $myResourceGroup --name $myScaleSet

# Memulai ulang (restart) VM Scale Set
az vmss restart --resource-group $myResourceGroup --name $myScaleSet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Membuat Load Balancer Rule
&lt;/h2&gt;

&lt;p&gt;Untuk menambahkan &lt;strong&gt;Load Balancer Rule&lt;/strong&gt;, gunakan perintah berikut:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az network lb rule create &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource-group&lt;/span&gt; &amp;lt;nama-resource-group&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--lb-name&lt;/span&gt; &amp;lt;nama-load-balancer&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; &amp;lt;nama-rule&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--protocol&lt;/span&gt; &amp;lt;TCP|UDP&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--frontend-port&lt;/span&gt; &amp;lt;nomor-port-frontend&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--backend-port&lt;/span&gt; &amp;lt;nomor-port-backend&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Contoh jika ingin meneruskan trafik HTTPS dari port 443 ke backend port 443:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az network lb rule create &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--resource-group&lt;/span&gt; myResourceGroup &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--lb-name&lt;/span&gt; myLoadBalancer &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; https-rule &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--protocol&lt;/span&gt; tcp &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--frontend-port&lt;/span&gt; 443 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--backend-port&lt;/span&gt; 443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>azure</category>
    </item>
    <item>
      <title>Git Commands Cheat Sheet</title>
      <dc:creator>erfandwi</dc:creator>
      <pubDate>Mon, 14 Jul 2025 15:22:56 +0000</pubDate>
      <link>https://forem.com/bisacloud/git-commands-cheat-sheet-1a27</link>
      <guid>https://forem.com/bisacloud/git-commands-cheat-sheet-1a27</guid>
      <description>&lt;p&gt;Git adalah sistem kontrol versi terdistribusi yang bersifat gratis dan open source. Git digunakan untuk melacak setiap perubahan pada file dalam suatu proyek, sehingga memungkinkan kolaborasi tim yang efisien serta manajemen versi yang lebih terstruktur dan andal.&lt;/p&gt;

&lt;p&gt;Berikut adalah cheat sheet Git yang bisa Anda gunakan sebagai referensi cepat untuk perintah-perintah Git yang umum digunakan, seperti melihat riwayat commit, membuat dan menggabungkan branch, serta melakukan commit terhadap perubahan file.&lt;/p&gt;

&lt;h2&gt;
  
  
  SETUP
&lt;/h2&gt;

&lt;p&gt;Mengatur nama pengguna secara global. Ini digunakan sebagai identitas saat membuat atau mengubah riwayat (history) versi source code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"[Nama Lengkap]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mengatur alamat email secara global. Alamat email ini akan tercantum pada setiap commit, jadi pastikan menggunakan email yang valid ΓÇö terutama jika Anda akan berkontribusi ke repositori publik.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"[email@example.com]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  SETUP &amp;amp; INIT
&lt;/h2&gt;

&lt;p&gt;Membuat repositori Git baru di folder proyek yang ditentukan.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init &lt;span class="o"&gt;[&lt;/span&gt;nama-proyek]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mengkloning (mengunduh) repositori remote beserta seluruh riwayat commit-nya ke komputer lokal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &amp;lt;URL-repositori&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  INSPECT &amp;amp; COMPARE
&lt;/h2&gt;

&lt;p&gt;Melihat riwayat commit pada repositori Git.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan detail perbedaan (diff) untuk setiap commit, termasuk baris kode yang ditambahkan atau dihapus.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;-p&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan sejumlah commit terbaru (contoh: 5 commit terakhir).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;-n&lt;/span&gt; 5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan daftar commit yang ada di &lt;code&gt;branchA&lt;/code&gt; tetapi tidak ada di &lt;code&gt;branchB&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log branchB..branchA
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Melihat riwayat commit yang hanya memengaruhi satu file tertentu (termasuk perubahan nama file jika terjadi).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--follow&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;nama_file]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan riwayat commit dalam format ringkas dan visual menggunakan garis cabang, referensi, dan anotasi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--oneline&lt;/span&gt; &lt;span class="nt"&gt;--graph&lt;/span&gt; &lt;span class="nt"&gt;--decorate&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan perubahan (diff) pada file tertentu dalam urutan commit-nya.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="nt"&gt;--&lt;/span&gt; path/to/file.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan riwayat commit dalam format pendek dan terformat khusus.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--pretty&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;format:&lt;span class="s2"&gt;"%h - %an, %ar : %s"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan perbedaan (diff) antara &lt;code&gt;branchA&lt;/code&gt; dan &lt;code&gt;branchB&lt;/code&gt;. Tiga titik (&lt;code&gt;...&lt;/code&gt;) menunjukkan perbedaan sejak &lt;em&gt;common ancestor&lt;/em&gt; keduanya.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git diff branchB...branchA
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan detail dari sebuah objek Git (commit, file, tag, dsb.) berdasarkan SHA-nya, dalam format yang mudah dibaca.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git show &lt;span class="o"&gt;[&lt;/span&gt;SHA]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  TRACKING PATH CHANGES
&lt;/h2&gt;

&lt;p&gt;Menghapus file dari project dan menandainya untuk dihapus pada commit berikutnya.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;file]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Memindahkan atau mengganti nama file/direktori dalam project, dan mencatat perubahan tersebut untuk commit berikutnya.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nb"&gt;mv&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;path-lama] &lt;span class="o"&gt;[&lt;/span&gt;path-baru]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan riwayat commit beserta statistik perubahan, serta mendeteksi pemindahan atau penggantian nama file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--stat&lt;/span&gt; &lt;span class="nt"&gt;-M&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  STAGE &amp;amp; SNAPSHOT
&lt;/h2&gt;

&lt;p&gt;Menampilkan status terkini dari &lt;em&gt;working directory&lt;/em&gt; dan &lt;em&gt;staging area&lt;/em&gt;, termasuk file yang dimodifikasi, ditambahkan, atau dihapus.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menambahkan file yang ditentukan ke &lt;em&gt;staging area&lt;/em&gt; agar siap untuk dicommit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="o"&gt;[&lt;/span&gt;file]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Membatalkan penambahan file ke &lt;em&gt;staging area&lt;/em&gt; (unstage), namun tetap mempertahankan perubahan pada &lt;em&gt;working directory&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset &lt;span class="o"&gt;[&lt;/span&gt;file]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan perbedaan (diff) antara file di &lt;em&gt;working directory&lt;/em&gt; dan file yang sudah di-&lt;em&gt;stage&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git diff
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan perbedaan (diff) antara file di &lt;em&gt;staging area&lt;/em&gt; dengan versi yang terakhir di-&lt;em&gt;commit&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git diff &lt;span class="nt"&gt;--staged&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Membuat commit dari perubahan yang ada di &lt;em&gt;staging area&lt;/em&gt;, disertai pesan deskriptif singkat.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"fix: send email"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  BRANCH &amp;amp; MERGE
&lt;/h2&gt;

&lt;p&gt;Menampilkan daftar branch lokal, serta menandai branch yang sedang aktif dengan tanda &lt;code&gt;*&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan semua branch yang ada di repositori, baik branch lokal maupun remote.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan daftar branch yang ada di remote repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch &lt;span class="nt"&gt;-r&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Membuat branch baru berdasarkan commit terakhir dari branch aktif saat ini.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch &lt;span class="o"&gt;[&lt;/span&gt;nama-branch]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Berpindah (&lt;em&gt;switch&lt;/em&gt;) ke branch lain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git switch &lt;span class="o"&gt;[&lt;/span&gt;nama-branch]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Catatan:&lt;/strong&gt; Perintah &lt;code&gt;git switch&lt;/code&gt; adalah alternatif modern dan lebih jelas dari &lt;code&gt;git checkout&lt;/code&gt; untuk berpindah branch.&lt;/p&gt;

&lt;p&gt;Mengambil file atau berpindah ke commit tertentu (digunakan untuk berbagai konteks: berpindah branch, commit, atau mengembalikan file).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="o"&gt;[&lt;/span&gt;opsi]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menggabungkan riwayat commit dari branch tertentu ke branch saat ini.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git merge &lt;span class="o"&gt;[&lt;/span&gt;nama-branch]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  TAGGING COMMITS
&lt;/h2&gt;

&lt;p&gt;Menampilkan daftar semua tag yang ada di dalam repositori Git.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git tag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Membuat tag baru (annotated atau lightweight) yang merujuk ke commit tertentu. Jika commit SHA tidak disebutkan, maka akan menggunakan commit terakhir (HEAD).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git tag &lt;span class="o"&gt;[&lt;/span&gt;nama-tag] &lt;span class="o"&gt;[&lt;/span&gt;commit-sha]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Membuat &lt;strong&gt;annotated tag&lt;/strong&gt; yang menyimpan metadata tambahan seperti pesan, pembuat, dan tanggal ΓÇö cocok untuk menandai versi rilis.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git tag &lt;span class="nt"&gt;-a&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;nama-tag] &lt;span class="o"&gt;[&lt;/span&gt;commit-sha] &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Pesan tag"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Catatan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gunakan tag bertipe &lt;em&gt;annotated&lt;/em&gt; (&lt;code&gt;-a&lt;/code&gt;) untuk rilis karena lebih lengkap dan aman untuk distribusi.&lt;/li&gt;
&lt;li&gt;Anda dapat menggunakan &lt;code&gt;git show [nama-tag]&lt;/code&gt; untuk melihat detail dari sebuah tag.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  SHARE &amp;amp; UPDATE
&lt;/h2&gt;

&lt;p&gt;Mengambil (fetch) semua branch dan update dari remote repository yang telah dikonfigurasi, tanpa menggabungkannya ke branch lokal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git fetch &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mengambil pembaruan dari remote dan secara otomatis menghapus referensi (branch/tag) lokal yang sudah tidak ada lagi di remote.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git fetch &lt;span class="nt"&gt;--prune&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;remote]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mengunduh perubahan terbaru dari remote repository dan langsung menggabungkannya (merge) ke branch aktif lokal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git pull &lt;span class="o"&gt;[&lt;/span&gt;remote]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menggabungkan perubahan dari branch remote tertentu ke branch aktif lokal (digunakan setelah &lt;code&gt;git fetch&lt;/code&gt;).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git merge &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;/[nama-branch]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Catatan:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;alias&lt;/code&gt; adalah nama remote, biasanya &lt;code&gt;origin&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Gunakan &lt;code&gt;git remote -v&lt;/code&gt; untuk melihat alias remote yang tersedia.&lt;/li&gt;
&lt;li&gt;Jika ingin menghindari merge dan lebih memilih &lt;em&gt;rebase&lt;/em&gt;, bisa gunakan &lt;code&gt;git pull --rebase&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  REWRITE HISTORY
&lt;/h2&gt;

&lt;p&gt;Mengatur ulang (rebase) riwayat commit pada branch aktif, meletakkannya di atas commit terakhir dari branch yang ditentukan. Berguna untuk menjaga riwayat commit tetap bersih dan linear.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git rebase &lt;span class="o"&gt;[&lt;/span&gt;nama-branch]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mengembalikan seluruh direktori kerja dan riwayat ke kondisi commit tertentu. &lt;strong&gt;Perhatian:&lt;/strong&gt; Ini akan menghapus semua perubahan setelah commit tersebut secara permanen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset &lt;span class="nt"&gt;--hard&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;commit-sha]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Membatalkan efek dari commit tertentu dengan cara membuat commit baru yang membalikkan perubahan, tanpa menghapus commit lama dari riwayat.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git revert &lt;span class="o"&gt;[&lt;/span&gt;commit-sha]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  TEMPORARY COMMITS
&lt;/h2&gt;

&lt;p&gt;Menyimpan sementara perubahan yang belum di-commit (baik yang sudah maupun belum di-&lt;em&gt;stage&lt;/em&gt;) ke dalam stack stash, dan mengembalikan &lt;em&gt;working directory&lt;/em&gt; ke kondisi bersih.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menampilkan daftar semua item yang tersimpan di dalam stack stash.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mengembalikan perubahan terakhir yang disimpan di stash ke &lt;em&gt;working directory&lt;/em&gt;, dan menghapusnya dari daftar stash.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash pop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Menghapus item tertentu dari daftar stash (secara default, yang teratas).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash drop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Untuk menyimpan dengan nama deskriptif, gunakan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash save &lt;span class="s2"&gt;"deskripsi singkat"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>git</category>
      <category>github</category>
      <category>gitlab</category>
    </item>
  </channel>
</rss>
