自古以來,學生,可謂是夢想最多,動作最少的一群人。想學 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.
Syncing