自古以來,學生,可謂是夢想最多,動作最少的一群人。想學 Linux 當個黑客?你說系統不能打熱門 3A 大作?當我沒說!
想算 ML/DL 跟潮流?你說顯卡佔用會導致遊戲根本沒法開?算了吧!
想組 NAS 學習協議與存儲?你說先把系統刷掉不然買一台整機?沒錢!學海無涯,先玩在說!
那些年,是多少障礙阻止我成為我所嚮往的極客?沒錢、沒硬體、沒授權!
同學感同身受嗎?這裏有一批上好的乾貨 ,看看不?試用免費呀!(當然之後也免費囉!)本議程將分享以 Promox VE 搭配眾多開源軟體,低成本自架一個滿足上敘條件的:
「學生學習、娛樂至上、必備良品!」先備知識
我希望把它設計成一個——懂越多、聽越多的議程。
但為了能理解脈絡,需要「能理解摘要(大綱)的名詞在做什麼,以及這些技術解決什麼問題」
EX:Linux 可能的用途、ML需要的環境(顯卡、顯存佔用等)、NAS 用來解決哪些痛點?等。
SITCON 2020 共筆
SITCON 2020
2020
共筆
R1
請從這裡開始
Tip:
有時會抓不到 DHCP IP(手動填)
每個指令都要捕捉會拖累效能
-> 虛擬機執行指令時,先偷看
把 Memory 位址轉換內建在 CPU
VT-x
讓 CPU 知道他是不是正在執行 VM 指令
不需要硬體支援,接近原生效能
全虛擬化 | 硬體輔助 | 硬體輔助虛擬 | |
---|---|---|---|
實現技術 | Binary Translation和直接執行 | 遇到特權指令轉到root 執行 | Hypercall |
Guest 兼容性 | 無修改 Guest 兼容性高 | 無修改 Guest 兼容性高 | 需修改 Guest 僅適用開源 OS |
性能 | 差 | 僅切換模式的開銷 | 接近於物理機 |
應用廠商 | VMware,QEMU | Microsoft Hyper-V,KVM | XEN |
Quick Emulator
Userspace
Kernel spacce
Hardware
Libvirt
管理所有類型虛擬機的 API
virsh
virt-manager
OpenStack
oVirt
KVM
LXC
OpenVZ
UML
ESX
other
PVE vs Libvirt
不建議在 PVE 中用 Libvirt ,容易爆炸
兩者可以管理 KVM,但願景不同:
PVE 期待能簡化管理 KVM
Libvirt 期待能管理所有 VM
導致 PVE 易但功能較少,反之。
Device:能插在電腦內的
解決 qemu 中冗餘操作
用 virtIO driver 取代 guest driver
在guest要用到的時候立刻做轉換
降維來說:
QEMU:
有一個員工 Guest ,寫一份中文文件
跑到老闆 Host 辦公室,送給他核准
但老闆看不懂中文,希望看英文…
每個員工另外找翻譯官,翻譯完再給老闆
VirtIO:
所有員工把文件送到老闆的翻譯官手上
還是不夠快
直接把翻譯官幹掉,老闆學什麼語言,員工就要學會什麼語言
越過(隱藏) Linux kernel ,讓 Guest OS 直接管理 Device
digraph G{
}
每一張網卡可以分別分給不同 Guest OS
將虛擬記憶體位置轉成實體
$ vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"
開起 iommu
修改VFIO設定
禁止啟動驅動
不想聽就照著簡報這樣點
Windows VM 安裝時要同時掛載 VirtIO 驅動光碟 iso
顯卡 Pass through
需要先知道 PCI function group
function
想要玩神奇的東西
AMD 有很多神奇的 功能/Bug
只有一張網卡可以給每個虛擬機用
儲存系統
如果儲存很穩還不夠可以讓虛擬機很穩並備份下來
請問伺服器分配vm V.S. container?
不想踩雷就用 VM
用 LXC 碰到 kernel module 容易遇到問題
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing