# SC Training Camp [TOC] - [name=WilliamMou] --- # 前情提要 ---- ## PVE OS 建置教學 30 篇  https://ithelp.ithome.com.tw/users/20111887/ironman/3432 ---- ## PVE VM 細節解析 1 場演講  http://pve.mou.tw ---- ## Network 教學  http://net.mou.tw/ --- # 想解決的問題 :::info 節省學習成本與時間 ::: > 之前浪費太多時間在架設 > 「用來學裝 Linux」的環境上 ---- :::danger 1. BMC - 一直 Crash - 還要先裝 Java 2. VPN - 很挑限制 OS - 要額外裝軟 ::: :::warning 3. Public IP 不足 - 去年做法 15 個 5. 硬體管理麻煩 - 15 不同的 OS ::: --- # 解決方案 ---- ## 學生 :::success 1. 連上 WiFi = 經過 VPN 2. noVNC 提供 Web 介面取代 BMC 3. SSH IP 不需要 Port Forward 4. 所有網路/系統設定都抽象了 ::: ---- ## 教練 :::info 1. 一鍵建立 30 台 VM Cluster 2. 一鍵設定 User Permissions 3. 網頁監管所有 VM VNC 畫面 4. 易於 Debug 的網路/系統環境 ::: ---- - VM 管理 ```shell= create-sc.sh <tmepVMID> <StartID> <EndID> start-all-vm-sc.sh remove-all-vm-sc.sh ``` - User 管理 ```shell= adduser-sc.sh <StartID> <EndID> deluser-sc.sh ``` --- # 工程與系統實現 - L3 網路設定 - 虛擬化技術 ---- ## 網路技術 :::info - 不會被學校擋的 VPN - subnet and DHCP **`Overlay-Network`** - Peer and BGP - Tunnel(L2TP over IPsec) ::: - ⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️ ----  ----  ---- ## 虛擬技術 :::info - VNC screen Sharing - PVE Accounts Permission **`Cluster Simulator`** - Virtual Bridge / VLAN - QEMU / KVM ::: - ⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️ --- # SCRIPT https://github.com/NTHU-SC/training-camp-pveenv ## 用途 這是用來批次創建超算訓練營虛擬機叢集的 Script。 建立學習從頭開始安裝 Linux 叢集的環境。 規格為: - 1 叢集包含 2 節點:`head` and `work` - 兩節點預先放入相同系統之 ISO 光碟 - 兩節點之網路「假想接線」如下圖:  ## 安裝 跑以下 Scipt 前,需要在 PVE 內,先創立至少一種系統的叢集樣本。 舉例來說如下建立一組 Ubuntu 叢集: | VMID | Name | 附註 | | -------- | -------- | -------- | | 2021001 | ubuntu-head-temp|Ubuntu 叢集的 Head node 的樣本 | | 2021002 | ubuntu-work-temp|Ubuntu 叢集的 Work node 的樣本 | > 其中: > - 2021:年份(無特別意義的 suffix,但請保留) > - 00:這是第 00(Ubuntu)組的樣本 > - 1 or 2:這是 head or work node ## create-sc.sh `./create-sc.sh <VMID suffix> <start> <end>` 在範圍 `[start, and]` 建立 `end - start` 組 `<VMID>` 類型的叢集。 - VMID suffix:除了末碼以外的全部數字。例如:202100 - start:起始的叢集編號。 - end:末端的叢集編號。 該指令會以 `21TTX` 作為 VM 的 VMID,TT 代表組,X 為 1 或 2 分別代表 head or work node。 >使用方式: `./create-sc.sh 202100 1 3` 可以建立 3 組 Ubuntu 叢集 ## adduser-sc.sh `./adduser-sc.sh <start> <end>` 為範圍 [start, and] 的叢集新增對應權限的使用者。 - start:起始的叢集編號。 - end:末端的叢集編號。 >使用方式: `./adduser-sc.sh 1 15` 建立 15 組擁有對應 VM 權限的使用者 ## start-all-vm-sc.sh `./start-all-vm-sc.sh` 預設啟動所有 21 開頭的 VM,意即啟動所有叢集 >使用方式: `./start-all-vm-sc.sh` ## update.sh `./update.sh <VMID suffix> <start> <end>` 修正用的 Scipt,可自行改寫 qm set 後的內容,批次更新群集。 - VMID suffix:除了末碼以外的全部數字。例如:202100 - start:起始的叢集編號。 - end:末端的叢集編號。 下圖為將所有叢集設定為自動開機、`12*2` 個 CPU、32G 記憶體。  >使用方式: `./update.sh 202100 1 15` ## deluser-sc.sh `./deluser-sc.sh <start> <end>` 刪除範圍 [start, and] 的使用者。 ## remove-all-vm-sc.sh `./remove-all-vm-sc.sh` 完全刪除「所有」21 開頭的虛擬機。 ## usbip.sh `./usbip <VMID> <RemoteIP> <BusID>` 將遠端 `<RemoteIP>` 上指定之 `<BusID>` 的 USB 裝置,插入 `<VMID>` VM 內。 >使用方式: `./usbip 2021001 10.121.123.123 1-1.3` 將該 IP 的 USB 裝置 Passthrough 到 2021001 裡。 ## 建置完成  更多相關資料可以參考 sc22 訓練營統一入口網站: https://hackmd.io/@NTHUSC/note
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up