<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cloud Hypervisor学习笔记 – 文件后端内存</title>
    <link>https://skyao.net/learning-cloud-hypervisor/features/file-backed-memory/</link>
    <description>Recent content in 文件后端内存 on Cloud Hypervisor学习笔记</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 15 Oct 2025 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="https://skyao.net/learning-cloud-hypervisor/features/file-backed-memory/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Features: 介绍</title>
      <link>https://skyao.net/learning-cloud-hypervisor/features/file-backed-memory/introduction/</link>
      <pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate>
      
      <guid>https://skyao.net/learning-cloud-hypervisor/features/file-backed-memory/introduction/</guid>
      <description>
        
        
        &lt;p&gt;在 Cloud Hypervisor (CH) 中，使用文件作为内存后端（File-backed memory）主要是为了实现高性能（Hugepages）、内存共享（vhost-user）或持久化内存（PMEM）等功能。&lt;/p&gt;
&lt;p&gt;这个配置主要通过 &lt;code&gt;--memory&lt;/code&gt; 参数下的 file 选项来实现。&lt;/p&gt;
&lt;h2 id=&#34;基本语法&#34;&gt;基本语法&lt;/h2&gt;
&lt;p&gt;核心参数是 &amp;ndash;memory:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--memory &lt;span style=&#34;color:#000&#34;&gt;size&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&amp;lt;内存大小&amp;gt;,file&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&amp;lt;文件路径&amp;gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;[&lt;/span&gt;,shared&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;on&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt;off&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;][&lt;/span&gt;,hugepages&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;on&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;|&lt;/span&gt;off&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;size&lt;/strong&gt;: 虚拟机内存大小 (例如 1G, 4G).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;file&lt;/strong&gt;: 主机（Host）上用于映射内存的文件的绝对路径。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;shared&lt;/strong&gt;: (可选) 是否将内存映射为共享（MAP_SHARED）。如果需要与 vhost-user 设备通信，必须设为 on。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;hugepages&lt;/strong&gt;: (可选) 显式声明该文件位于 Hugepages 文件系统中。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;常见使用场景&#34;&gt;常见使用场景&lt;/h2&gt;
&lt;h3 id=&#34;使用-hugepages-大页内存&#34;&gt;使用 Hugepages (大页内存)&lt;/h3&gt;
&lt;p&gt;这是最常见的用途，推荐用于生产环境。&lt;/p&gt;
&lt;p&gt;使用大页内存可以减少 TLB miss，显著提高虚拟机性能。&lt;/p&gt;
&lt;p&gt;步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;确保主机已挂载 hugetlbfs (通常在 /dev/hugepages)。&lt;/li&gt;
&lt;li&gt;指定文件路径&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;命令示例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# 准备目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p /home/sky/work/test/cloudhypervisor/file-backed-memory
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;cd&lt;/span&gt; /home/sky/work/test/cloudhypervisor/file-backed-memory
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo rm -rf /home/sky/work/test/cloudhypervisor/file-backed-memory/cloud-hypervisor.sock
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo /home/sky/work/soft/cloudhypervisor/bin/cloud-hypervisor &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;    --api-socket /home/sky/work/test/cloudhypervisor/file-backed-memory/cloud-hypervisor.sock &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;    --cpus &lt;span style=&#34;color:#000&#34;&gt;boot&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;    --memory &lt;span style=&#34;color:#000&#34;&gt;size&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;4G,file&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;/dev/hugepages/ch-ram-backing &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;    --kernel /home/sky/work/test/cloudhypervisor/vmlinux.bin &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;    --cmdline &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;root=/dev/vda1 console=hvc0 rw&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&lt;/span&gt;    --disk &lt;span style=&#34;color:#000&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;/home/sky/work/test/cloudhypervisor/ubuntu-cloud-image/rootfs.raw
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# 完成后关闭&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo /home/sky/work/soft/cloudhypervisor/bin/ch-remote --api-socket&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;/home/sky/work/test/cloudhypervisor/file-backed-memory/cloud-hypervisor.sock shutdown
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;注意：&lt;/em&gt; Cloud Hypervisor 会在 /dev/hugepages/ 下创建名为 ch-ram-backing 的文件。如果该路径是 hugetlbfs 挂载点，CH 会自动识别并使用大页。&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
