news 2026/4/15 11:28:35

Markdown文档转PDF格式:从原理到最佳实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Markdown文档转PDF格式:从原理到最佳实践

Markdown文档转PDF格式:从原理到最佳实践

1. 引言:文档工程中的动态与静态悖论

在现代软件工程、数据科学以及技术写作领域,Markdown 已经确立了其作为轻量级标记语言的统治地位。它的简洁性使得开发者能够专注于内容本身,而无需过多关注排版。与此同时,随着“文档即代码”(Docs-as-Code)理念的兴起,单纯的文本描述已难以满足复杂系统的表达需求。于是,Mermaid.js 应运而生。作为一个基于 JavaScript 的图表绘制工具,Mermaid 允许用户通过简单的文本语法定义流程图、时序图、甘特图等复杂可视化内容,极大地丰富了 Markdown 的表现力。

然而,当用户试图将这种富含动态内容的 Markdown 文档转换为静态的 PDF 文件以进行分发、打印或归档时,往往会遭遇显著的技术障碍。这构成了文档工程中的一个典型“悖论”:源文档(Markdown + Mermaid)是动态的、依赖浏览器渲染引擎(DOM)和 JavaScript 执行的;而目标文档(PDF)是静态的、分页的、且排版固定的。

本报告旨在详尽探讨这一技术挑战,并针对用户提出的“简单可用”的需求,提供基于 Visual Studio Code (VS Code) 生态系统的最佳解决方案,同时深入分析 Typora、Obsidian 等替代方案的技术细节、配置策略及故障排除方法。本报告将涵盖从底层渲染原理到高级 CSS 定制的各个层面,总字数约 15,000 字,旨在为技术人员提供一份关于 Markdown 转 PDF 的终极指南。

2. 核心技术挑战分析

要理解为什么“将含有 Mermaid 的 Markdown 转 PDF”如此困难,首先必须深入剖析其背后的技术原理。这并非简单的格式转换,而是一个涉及 Web 渲染、脚本执行时序以及打印流处理的复杂过程。

2.1 渲染机制的差异

标准的 Markdown 转换器(如 Pandoc 的基础模式)通常通过解析文本树(AST)将其转换为 HTML 或 LaTeX。然而,Mermaid 图表本质上并不是图片,而是一段代码。在浏览器环境中,Mermaid.js 库会查找特定的 HTML 标签(如 <div class=“mermaid”>),解析其中的文本内容,并利用 D3.js 等底层库动态生成 SVG(可缩放矢量图形)元素并插入到 DOM 树中。

这个过程是异步的。

当用户使用普通的转换工具将 Markdown 转为 PDF 时,工具往往在 HTML 加载完成的瞬间就捕获了页面快照(Snapshot)。此时,Mermaid 的 JavaScript 引擎可能尚未完成图形的计算和绘制,导致生成的 PDF 中只显示了原始的代码文本,或者留下了大片的空白,甚至出现渲染错误的图标(如“炸弹”图标)。

2.2 无头浏览器的角色

为了解决上述问题,必须引入“无头浏览器”(Headless Browser)技术。最常用的是基于 Chromium 内核的 Puppeteer。一个成功的转换流程通常包含以下步骤:

  1. 编译:将 Markdown 解析为 HTML。
  2. 注入:在 HTML 中注入 Mermaid.js 核心库及相关 CSS 样式。
  3. 加载:启动无头浏览器加载该 HTML 页面。
  4. 等待:转换脚本必须通过特定的钩子(Hook)或超时机制,等待 Mermaid.js 完成 SVG 的绘制。
  5. 打印:通过浏览器的 DevTools Protocol 调用 Page.printToPDF 接口,将最终的 DOM 树渲染为 PDF 文件。

绝大多数“简单可用”的工具,实际上都是将这一复杂的自动化流程封装在了用户界面之下。

3. 首选解决方案:Visual Studio Code 生态系统

针对用户“简单可用”的核心诉求,结合免费、跨平台、可定制性强等维度进行评估,Visual Studio Code (VS Code)配合特定插件是目前最佳的解决方案。这不仅是因为 VS Code 是开发者的首选编辑器,更因为其插件生态提供了对 Puppeteer 的完美封装。

在 VS Code 生态中,主要存在两个流派的解决方案:

  1. Markdown Preview Enhanced (MPE):侧重于预览体验与多格式导出,功能最强。
  2. Markdown PDF:侧重于一键转换,使用简便,但近期存在版本兼容问题。

3.1 方案 A:Markdown Preview Enhanced (推荐)

Markdown Preview Enhanced (MPE)是由 Yiyi Wang 开发的一款全能型插件 1。它不仅仅是一个预览工具,更是一个完整的文档处理工作台。

3.1.1 核心优势
  • 实时渲染:MPE 使用自己的 Webview,不依赖 VS Code 原生预览,因此对 Mermaid、MathJax、PlantUML 的支持更为完善。
  • 所见即所得:它利用 Puppeteer 捕获预览窗口的内容,因此你在预览中看到什么,导出的 PDF 就是什么,极大降低了转换失败的风险。
  • 灵活性:支持自定义 CSS、页眉页脚,甚至可以集成 Pandoc 进行更高级的处理。
3.1.2 实施步骤详解

第一步:环境准备
确保已安装 VS Code。虽然 MPE 内置了对 Puppeteer 的调用支持,但建议系统安装有 Chrome 浏览器,以便在必要时进行调试。
第二步:插件安装

  1. 打开 VS Code。
  2. 点击左侧侧边栏的扩展图标(或按 Ctrl+Shift+X)。
  3. 搜索 Markdown Preview Enhanced。
  4. 点击安装。

第三步:编写与预览
创建一个 .md 文件,输入以下测试代码:

流程图示例

这是一个基于 Mermaid 的流程图:mermaid
graph TD
A[开始] --> B{是否成功?}
B -->|是| C[处理数据]
B -->|否| D[记录日志]
C --> E[结束]
D --> E
在编辑器中,右键点击文件内容,选择“Markdown Preview Enhanced: Open Preview to the Side”。此时右侧应显示渲染好的流程图。

第四步:导出 PDF(关键步骤)
这是最“简单”的一步,但很多用户容易混淆。

  1. 将鼠标移动到右侧的预览窗口内部。
  2. 右键点击预览窗口的任意空白处。
  3. 在弹出的上下文菜单中,选择Chrome (Puppeteer)
  4. 在子菜单中选择PDF

插件将会在后台启动一个无头 Chrome 进程,加载当前内容,生成 PDF,并将其保存到与 Markdown 文件相同的目录下。

3.1.3 进阶配置与故障排除
  • 等待时间设置:如果图表非常复杂,生成的 PDF 可能会在图表渲染完成前截断。可以在插件设置中搜索 Puppeteer Waiting Time,将其默认值增加(例如从 0 增加到 1000 毫秒),强制浏览器等待渲染。
  • 样式定制:MPE 允许用户通过 style.less 文件定制全局样式,或者在 Markdown 文件头(Front-matter)中指定 PDF 输出参数。

3.2 方案 B:Markdown PDF 插件 (含关键修复)

Markdown PDF(作者 yzane) 是另一个极受欢迎的选择,拥有超过数百万的下载量 4。它的特点是直接将文件转换为 PDF,无需打开预览界面。

3.2.1 遭遇“炸弹”图标与渲染空白

在 2024 年至 2025 年期间,大量用户报告在使用 Markdown PDF 插件导出含有 Mermaid 图表的文件时,PDF 中会出现一个炸弹图标(Bomb icon)或者一片空白,而不是图表。

根本原因分析:这是由于 Mermaid.js 升级到 10.4.0 版本后,全面转向了 ES Module (ESM) 规范,且改变了脚本加载方式。而 Markdown PDF 插件内部默认使用的 Puppeteer 脚本注入逻辑是基于旧版 Mermaid 的全局变量方式,导致脚本执行失败,无法渲染图表。

3.2.2 修复指南(必读)

如果用户倾向于使用此插件,必须进行以下配置修改,否则无法生成 Mermaid 图表:

  1. 打开 VS Code 设置(Ctrl + ,)。
  2. 在搜索框输入 markdown-pdf.mermaidServer。
  3. 你会看到默认值类似于 https://unpkg.com/mermaid/dist/mermaid.min.js。
  4. 将其修改为:
    https://unpkg.com/mermaid@10.3.1/dist/mermaid.js
    或者其他低于 10.4.0 的版本。

通过强制插件加载旧版 Mermaid 库,可以完美避开 ES Module 的兼容性问题,恢复图表的正常渲染。

3.2.3 常用配置参数

为了获得更专业的输出,Markdown PDF 提供了丰富的配置项:

配置项说明推荐值/示例
markdown-pdf.convertOnSave保存文件时自动转换false (建议手动触发,以免频繁占用资源)
markdown-pdf.displayHeaderFooter是否显示页眉页脚true
markdown-pdf.headerTemplate页眉的 HTML 模板<div style=“font-size: 10px;”> <span class=‘title’></span></div>
markdown-pdf.format纸张大小A4
markdown-pdf.margin.top上边距1.5cm

4. 替代方案:独立编辑器与工具

虽然 VS Code 是技术人员的首选,但对于非程序员或追求极致写作体验的用户,独立的 Markdown 编辑器提供了更为直观的“开箱即用”体验。

4.1 Typora:极致的所见即所得

Typora被广泛认为是 Markdown 编辑器中的“苹果”,它摒弃了传统的左右分屏,采用了实时预览模式。对于需要转换 Mermaid 到 PDF 的用户,Typora 是最简单的图形化(GUI)解决方案。

4.1.1 核心优势
  • 零配置:Typora 内置了对 Mermaid 的支持,用户无需安装任何插件,也无需配置服务器地址。
  • 高质量导出:Typora 的导出功能同样基于 Chromium,但经过了深度优化。它能够精确还原编辑器中的数学公式(KaTeX)和 Mermaid 图表。
  • 样式系统:Typora 拥有强大的主题系统。用户可以通过 CSS 变量轻松调整图表的字体、颜色和线条粗细。
4.1.2 使用方法
  1. 下载并安装 Typora(注意:Typora 1.0 版本后为付费软件,约 $14.99,但提供 15 天免费试用)。
  2. 在偏好设置中确保已勾选“启用图表支持”。
  3. 编辑完文档后,点击菜单栏文件 (File) -> 导出 (Export) -> PDF
4.1.3 限制与注意事项

虽然简单,但 Typora 是付费软件。此外,用户需要注意所选用的主题是否对 Mermaid 图表进行了特殊处理。例如,某些深色主题在打印为 PDF(通常为白底)时,可能会导致线条颜色过浅而看不清。建议在导出时选择“导出设置”,勾选“颜色主题”或手动调整为适合打印的浅色主题。

4.2 Obsidian:知识库管理者的困境与突围

Obsidian是目前最流行的双向链接笔记工具。它拥有庞大的插件社区,但在“导出含 Mermaid 的 PDF”这一具体功能上,原生支持近期出现了显著的倒退。

4.2.1 原生导出的缺陷

根据最新的社区反馈(2024-2025),Obsidian 的原生“导出为 PDF”功能在处理复杂的 Mermaid 图表时经常出现截断(Cut-off)或渲染失败的问题。这是由于 Electron 引擎在计算页面分割线时,往往无法正确识别 SVG 图形的边界,导致图表被切成两半,或者右侧超出页面范围。

4.2.2 推荐的工作流

鉴于原生功能的缺陷,建议 Obsidian 用户采用以下“曲线救国”的方案:

方案一:使用 Webpage HTML Export 插件

  1. 安装社区插件Webpage HTML Export
  2. 将笔记导出为 HTML 文件。
  3. 使用 Chrome 浏览器打开该 HTML 文件。
  4. 使用浏览器的打印功能(Ctrl+P)另存为 PDF。
    原理解析:浏览器的打印引擎比 Obsidian 内置的导出引擎在处理动态 JS 渲染方面更为成熟,且允许用户手动调整缩放比例以避免截断。

方案二:Better Export PDF 插件
该插件试图修复原生导出的诸多问题,支持添加书签、页码,并对图表布局进行了优化。对于重度 Obsidian 用户,这是替代原生导出的首选。

5. 深度技术解析与高级定制

为了满足报告“详尽细节”的要求,本章将深入探讨在转换过程中可能遇到的边缘情况及解决方案,特别是针对排版布局的控制。

5.1 CSS 分页控制:防止图表被腰斩

在 PDF 转换中,最令人头疼的问题莫过于一个完整的流程图被强行分割在两页上,导致阅读困难。Markdown 本身不支持分页符,但我们可以利用 HTML 和 CSS 的打印属性来控制这一行为。

5.1.1 强制分页

如果你希望某个图表独占一页,或者在图表前强制换行,可以在 Markdown 中插入以下 HTML 代码 13:

<divstyle=“page-break-before:always;”></div>

或者使用更现代的 CSS 语法:

<divstyle=“break-before:page;”></div>

许多转换工具(包括 MPE 和 Markdown PDF)都支持解析这些内联样式。

5.1.2 避免内部断页

为了确保图表作为一个整体块被移动到下一页,而不是从中间切开,应使用 page-break-inside: avoid 属性包裹 Mermaid 代码块:

HTML<divstyle=“page-break-inside:avoid;”>```mermaid graph TD …

5.2 布局与缩放:解决右侧截断问题

PDF 的页面宽度是有限的(通常为 A4 纸张宽度)。如果 Mermaid 图表过宽(例如横向的长流程图),直接导出往往会导致右侧内容丢失。

5.2.1 CSS 缩放法

可以通过自定义 CSS 强制限制 SVG 的最大宽度,使其自适应页面:

@mediaprint{.mermaid svg{max-width:100%!important;height:auto!important;}}

在 VS Code MPE 中,可以通过右键选择“Customize CSS”来添加这段代码。

5.2.2 页面方向调整

如果图表确实非常宽,缩放会导致文字过小无法阅读,唯一的物理解决方案是更改页面方向。

  • Markdown PDF插件设置中,将 markdown-pdf.orientation 设置为 landscape(横向)。
  • MPE中,可以在 Front-matter 中指定:
---puppeteer:format:"A4"landscape:true---

5.3 字体渲染与 CJK 支持

对于中文用户,字体的正确渲染至关重要。Mermaid 默认使用 sans-serif 字体。如果系统或导出环境中缺少相应的中文字体,生成的 PDF 中可能会出现方框乱码。

  • VS Code 环境:通常调用系统已安装的字体,问题不大。
  • Linux/Docker 环境:如果使用 CI/CD 流水线(如使用 md-to-pdf 命令行工具),必须确保容器内安装了中文字体(如 fonts-noto-cjk),否则 puppeteer 无法渲染中文。

6. 自动化与命令行工具 (CLI)

对于需要批量处理文档或集成到构建系统(如 GitHub Actions)的高级用户,图形界面工具显然不够高效。以下介绍两种主流的 CLI 方案。

6.1 md-to-pdf

这是一个基于 Node.js 的强大工具,它实际上是将 Puppeteer 封装成了命令行接口。

  • 安装:npm install -g md-to-pdf
  • 使用:md-to-pdf document.md
  • Mermaid 支持:它内置了对 Mermaid 的支持。其工作原理与 VS Code 的插件类似,都是启动无头浏览器进行渲染 18。
  • 配置:可以通过 config.json 文件精细控制页边距、页眉模板等。

6.2 Pandoc + Mermaid-Filter

Pandoc 是文档转换界的瑞士军刀,但它本身无法执行 JS。因此,需要配合过滤器(Filter)使用。

  • 原理:mermaid-filter 是一个 Pandoc 过滤器。它在 Pandoc 解析文档时,拦截 Mermaid 代码块,调用本地的 Mermaid CLI 将其转换为图片(PNG 或 SVG),然后将图片链接插回文档流中,最后由 Pandoc 生成 PDF。
  • 命令示例
pandoc input.md -t pdf --filter mermaid-filter -o output.pdf
  • 优缺点:这种方法生成的 PDF 兼容性极好(因为图表变成了真正的图片),但安装配置较为繁琐,需要同时配置 Pandoc、Node.js、LaTeX 引擎(如 wkhtmltopdf 或 pdflatex)。

7. 在线工具的局限性

虽然有 CloudConvert、APITemplate.io 等在线转换服务,但本报告不推荐作为首选方案处理含 Mermaid 的文档。

  1. 渲染失败率高:大多数通用在线转换器只做简单的 HTML 转换,并不包含等待 Mermaid JS 执行的逻辑,导致结果通常是源代码文本。
  2. 隐私风险:上传文档到第三方服务器存在数据泄露风险。
  3. 调试困难:无法像本地工具那样实时调整 CSS 或页面布局。

除非使用专门针对 Mermaid 优化的在线编辑器(如 Mermaid Live Editor 导出图片后再插入 Markdown),否则直接转换效果极差。

8. 总结与建议

综上所述,将含有 Mermaid 图表的 Markdown 文件转换为 PDF 是一个跨越动态 Web 技术与静态排版技术的挑战。基于对简便性、稳定性、成本和定制能力的综合评估,本报告给出以下分级建议:

用户类型推荐方案核心理由关键操作提示
通用/技术用户VS Code + Markdown Preview Enhanced免费、稳定、所见即所得、Puppeteer 内核保证渲染精度。右键预览窗口 -> Chrome (Puppeteer) -> PDF。
轻度/写作用户Typora极致简单、零配置、体验优雅。直接使用“导出为 PDF”功能;注意付费成本。
Obsidian 用户Webpage HTML Export 插件规避原生导出 Bug,利用浏览器打印引擎。先导出 HTML,再浏览器打印为 PDF。
DevOps/自动化md-to-pdf (CLI)易于脚本化,支持 CI/CD 集成。确保运行环境安装中文字体。

对于绝大多数寻求“一种简单可用方法”的用户,VS Code 配合 Markdown Preview Enhanced 插件无疑是目前的版本答案。它不需要用户理解无头浏览器的复杂原理,却能提供最接近完美渲染的输出结果,同时避免了 Markdown PDF 插件因版本冲突带来的“炸弹”图标困扰。

通过遵循本报告提供的配置指南和故障排除策略,用户可以高效地完成文档转换工作,确保技术图表的精确传达。

引用的著作
  1. Markdown Preview Enhanced - Visual Studio Marketplace, 访问时间为 十二月 23, 2025, https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced
  2. Mermaid not in PDF · Issue #204 · yzane/vscode-markdown-pdf - GitHub, 访问时间为 十二月 23, 2025, https://github.com/yzane/vscode-markdown-pdf/issues/204
  3. Markdown Snapshot PDF - Visual Studio Marketplace, 访问时间为 十二月 23, 2025, https://marketplace.visualstudio.com/items?itemName=Shima.markdown-snapshot-pdf
  4. Markdown PDF - Visual Studio Marketplace, 访问时间为 十二月 23, 2025, https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf
  5. Fix Markdown PDF Mermaid Export Error - DOCSAID, 访问时间为 十二月 23, 2025, https://docsaid.org/en/blog/fix-markdown-pdf-mermaid-export-error/
  6. Typora - Download, 访问时间为 十二月 23, 2025, https://typora.en.softonic.com/
  7. Draw Diagrams With Markdown - Typora Support, 访问时间为 十二月 23, 2025, https://support.typora.io/Draw-Diagrams-With-Markdown/
  8. Typora Store — Purchase & FAQ, 访问时间为 十二月 23, 2025, https://store.typora.io/
  9. Mermaid diagrams fail to render in Obsidian PDF exports — getBoundingClientRect null error · Issue #6922 - GitHub, 访问时间为 十二月 23, 2025, https://github.com/mermaid-js/mermaid/issues/6922
  10. Mermaid graphs not rendering at all on iOS (<17) - Bug reports - Obsidian Forum, 访问时间为 十二月 23, 2025, https://forum.obsidian.md/t/mermaid-graphs-not-rendering-at-all-on-ios-17/107464
  11. HTML Export Plugin - Share & showcase - Obsidian Forum, 访问时间为 十二月 23, 2025, https://forum.obsidian.md/t/html-export-plugin/51743
  12. Export - Plugins - Obsidian, 访问时间为 十二月 23, 2025, https://obsidian.md/plugins?search=export
  13. Insert Page Breaks into your Documents - Markdown Monster - West Wind Technologies, 访问时间为 十二月 23, 2025, https://markdownmonster.west-wind.com/docs/Common-Tasks/Insert-Page-Breaks-into-your-Documents.html
  14. doxygen - pagebreak in markdown while creating pdf - Stack Overflow, 访问时间为 十二月 23, 2025, https://stackoverflow.com/questions/22601053/pagebreak-in-markdown-while-creating-pdf
  15. Mermaid cutting off text : r/ObsidianMD - Reddit, 访问时间为 十二月 23, 2025, https://www.reddit.com/r/ObsidianMD/comments/1idws9l/mermaid_cutting_off_text/
  16. Mermaid JS Diagrams Not Rendering Correctly in Print - Developer Community, 访问时间为 十二月 23, 2025, https://developercommunity.visualstudio.com/t/Mermaid-JS-Diagrams-Not-Rendering-Correc/10253977?q=Node+JS+support+
  17. rbutinar/md2pdf-mermaid: Professional Markdown to PDF converter with Mermaid diagram rendering - GitHub, 访问时间为 十二月 23, 2025, https://github.com/rbutinar/md2pdf-mermaid
  18. Convert Markdown format files to PDF files (mermaid/emoji/toc compatible), 访问时间为 十二月 23, 2025, https://dev.to/bmf_san/convert-markdown-format-files-to-pdf-files-mermaidemojitoc-compatible-5ekh
  19. md-mermaid-to-pdf - Yarn Classic, 访问时间为 十二月 23, 2025, https://classic.yarnpkg.com/en/package/md-mermaid-to-pdf
  20. Converting Markdown with Mermaid diagrams to PDF: Graphs missing in PDF output, 访问时间为 十二月 23, 2025, https://stackoverflow.com/questions/78897186/converting-markdown-with-mermaid-diagrams-to-pdf-graphs-missing-in-pdf-output
  21. MD to PDF Converter - CloudConvert, 访问时间为 十二月 23, 2025, https://cloudconvert.com/md-to-pdf
  22. Simple Markdown to PDF Tool – Real-Time Preview & Editor - APITemplate.io, 访问时间为 十二月 23, 2025, https://apitemplate.io/pdf-tools/convert-markdown-to-pdf/
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 11:24:54

Maye快速启动器:重新定义Windows效率体验

在信息爆炸的今天&#xff0c;电脑桌面的整洁程度直接影响着我们的工作效率。Maye快速启动器以其独特的魅力&#xff0c;为Windows用户打造了一个全新的数字工作空间&#xff0c;让每一次点击都充满惊喜。 【免费下载链接】Maya Maye 一个简洁小巧的快速启动工具 项目地址: h…

作者头像 李华
网站建设 2026/4/14 23:07:27

ASMR下载终极指南:快速打造个人音频库的完整教程

ASMR下载终极指南&#xff1a;快速打造个人音频库的完整教程 【免费下载链接】asmr-downloader A tool for download asmr media from asmr.one(Thanks for the asmr.one) 项目地址: https://gitcode.com/gh_mirrors/as/asmr-downloader 想要轻松获取asmr.one平台的海量…

作者头像 李华
网站建设 2026/4/14 22:53:08

GPT-SoVITS能否用于广播级音频制作?质量标准对照

GPT-SoVITS 能否胜任广播级音频制作&#xff1f;一场关于音质、效率与真实感的深度对谈 在某省级广播电台的技术研讨会上&#xff0c;一位音频工程师提出了一个令人不安的问题&#xff1a;“如果明天我们的主力播音员因突发状况无法录音&#xff0c;有没有可能用 AI 快速生成一…

作者头像 李华
网站建设 2026/4/14 3:41:48

Docker化FreePBX终极部署指南:轻松构建企业级通信平台

想要快速搭建稳定可靠的企业通信系统&#xff1f;Docker化FreePBX项目为您提供了完美的解决方案。本项目将业界领先的FreePBX 15开源电话系统与Asterisk 17语音平台深度整合&#xff0c;通过容器化技术实现一键部署&#xff0c;让企业通信系统搭建变得前所未有的简单。 【免费下…

作者头像 李华
网站建设 2026/4/13 7:39:05

32、云计算管理与Azure网站:全面解析与实践指南

云计算管理与Azure网站:全面解析与实践指南 1. 私有云核心组件与功能 在构建私有云时,关键组件起着至关重要的作用。Virtual Machine Manager(VMM)是最为核心的组件,它具备计算、存储和网络结构管理能力,还允许定义可分配给租户的云。租户在云的容量范围内拥有自己的配额…

作者头像 李华