Skip to main content
Version: Next

環境需求

本節說明安裝 Gemini AI Console 單機版的軟硬體和網路環境需求。請確保欲安裝 Gemini AI Console 單機版的節點能滿足以下要求,再開始進行安裝。

硬體需求#

  • vCPU:8 Core
  • Memory:16 GB
  • GPU:Gemini AI Console 相容於 Nvidia 主流 GPU 卡,例如:
    • Tesla P100
    • Tesla V100
    • Quadro RTX 4000
    • Quadro RTX 6000
    • Quadro RTX 8000
    • GeForce RTX 3080Ti
    • GeForce RTX 3090

支援版本#

  • 本安裝軟體支援以下作業系統,可使用 cat /etc/*release 指令查詢
    • Ubuntu
    • CentOS
    • Red Hat Enterprise Linux
  • hostname 請不要包含 GMN
  • 本文件預設使用 Ubuntu 作業系統 Ubuntu 16.04.7 LTS (Xenial Xerus) Server 版本 , 可於官網下載 ISO file "ubuntu-16.04.7-server-amd64.iso": https://releases.ubuntu.com/16.04/

設定磁碟分割#

  • 將 /var 獨立空間以用來存放 docker images 與 AI Console 安裝相關檔案
  • 建議 OS 內, 根目錄 "/" 空間需大於 100G 且 "/var" 空間需大於 150G
  • 承上,若日後從 Docker Hub 下載之 Image,也會存放於 "/var" 空間。因此 "/var" 盡可能越大越好

初步設定規範#

note

以下使用 Ubuntu 16.04 做為例子

設定作業系統之帳號密碼#

  • 請先固定將 root 帳號的密碼設定為 "password" , 等待全部安裝之後您可自行再修改密碼與權限
# OS
帳號:root
密碼:password

開啟 root 的 ssh 連線設定#

  • 請先切換至 root 帳號後 , 使用 passwd 指令, 設定 root user 的密碼為 "password"
gemini@gpuhost:~# sudo su -
root@gpuhost:~#
# passwd
Enter new UNIX password:
Retype new UNIX password:
  • 編輯 /etc/ssh/sshd_config
# Authentication:
LoginGraceTime 120
# PermitRootLogin prohibit-password
PermitRootLogin yes
StrictModes yes
  • 重啟 ssh 服務
$ /etc/init.d/ssh restart
[ ok ] Restarting ssh (via systemctl): ssh.service.

關閉 swap#

  • 編輯 /etc/fstab 文件,註解掉 swap 類型的行
$ vim /etc/fstab
找到帶有 swap 的 UUID,並在前面加"#"註解
原先的行:
UUID=<一串ID> none swap sw 0 0
修改後的樣子
# UUID=<一串ID> none swap sw 0 0
  • systemd Init 系統禁用 Swap 分區的方式

首先先使用 fdisk -l 尋找 swap 在哪一個磁碟分區

範例
$ fdisk -l
...
/dev/sda1 * 2048 81885183 81883136 39G 83 Linux
/dev/sda2 81887230 83884031 1996802 975M 5 Extended
/dev/sda5 81887232 83884031 1996800 975M 82 Linux swap / Solaris

可以看到 swap 在 /dev/sda5 上,便可使用以下指令去禁用 swap 分區

$ systemctl mask dev-sdXX.swap

dev-sdXX.swap 中的 XX 为 swap 分區

  • 以上面的範例為例:
$ systemctl mask dev-sda5.swap
Created symlink /etc/systemd/system/dev-sda5.swap → /dev/null.
  • 查看 swap 狀態
$ swapon --show

使用以下指令關閉 swap

$ swapoff -a
  • 若只是要臨時禁用,就單純使用 swapoff -a 指令即可

網路設定規範#

IP Address#

每個節點都必須配有一個靜態 IP。若您在安裝完成後,需要變更 IP Address,請參考變更 IP Address

Port#

請確保以下網路埠有開放:Port 22, 80, 443, 30000~32767

Bridge#

  • 作業系統內的網路卡必須設定成 Bridge mode, 對外連線之網路卡需要串接設定到 "br-1" bridge 上。可參考以下設定。

  • 確認網路與 DNS 設定正確之後, 請先安裝 bridge-utils package

$ apt-get update
$ apt-get install bridge-utils -y
  • 參考以下內容設定 "/etc/network/interfaces" 檔案,最終會產生一張名為 br-1 橋接網卡。
# The loopback network interface
auto lo
iface lo inet loopback
auto <網卡名稱>
iface <網卡名稱> inet manual
auto br-1
iface br-1 inet static
bridge_ports <網卡名稱>
address <Host IP>
netmask <netmask>
gateway <Host Gateway>
dns-nameservers <DNS IP>
  • 在 ubuntu 伺服器預設 ufw 是沒有啟用的狀態,由於 Ubuntu 的 ufw 預設會限制 Bridge 相關的連線,為了避免影響到 Kubernetes 以及 VM 的佈署及運作,需先確認 ufw 服務是否運行。若 ufw 為 active,可修改 ufw 預設的規則或直接將其停用
$ ufw status
Status: active
or
Status: inactive
$ ufw disable
$ vim /etc/default/ufw
$ 將以下項目從DROP改成ACCEPT
DEFAULT_FORWARD_POLICY="ACCEPT"
$ 儲存離開後重新讀取ufw的設定
$ systemctl daemon-reload
  • 設定完畢請重新開機

  • 重開機之後, 確認 bridge 功能 , 可使用 brctl 指令, 如下示範

$ brctl show
bridge name bridge id STP enabled interfaces
br-1 8000.ecf4bbd477fc no eno1

第三方軟體需求#

caution

以下安裝方式皆是預設機器有連網的狀態。 如果在沒有網路的狀態下,請直接參考離線安裝步驟。

透過下方指令安裝以下第三方軟體,請先切換為 root 權限後再進行安裝

安裝 gcc, make#

$ apt-get install gcc make -y

安裝cuda#

  • 請從 NVidia 官方網站下載 CUDA 安裝包,並使用 root 權限執行安裝。 建議可使用 silent 可直接透過預設值進行安裝,此時畫面會定格,但並不影響安裝流程。

官網網址 :

$ sudo su
$ wget \
https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers\
/cuda_11.2.0_460.27.04_linux.run
$ chmod +x ./cuda_11.2.0_460.27.04_linux.run
$ ./cuda_11.2.0_460.27.04_linux.run --silent

大約 10 分鐘內將會安裝完畢

安裝docker#

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ apt-get update
$ apt-get install -y docker-ce docker-ce-cli containerd.io

安裝shc#

$ add-apt-repository ppa:neurobin/ppa
Press [ENTER] to continue
$ apt-get update
$ apt-get install -y shc

安裝 nvidia-docker2#

  • 執行以下指令進行安裝
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list \
| sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ apt-get update && sudo apt-get install -y nvidia-docker2
  • 修改 /etc/docker/daemon.json 為以下內容
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
  • 修改完畢後執行以下指令,重新啟用 Docker
$ systemctl daemon-reload
$ systemctl restart docker

軟體確認表#

項目具體需求檢查方式參考
NVidia CUDA11.2nvidia-smi
Docker>= 19.03.5docker version
shc>=3.9.6shc -h