iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 4
0
DevOps

Oops Step ( Home lab of a kind ) 系列 第 4

The First Angle (part 2)

套件安裝在一般OS安裝後,可以說是很容易掛一漏萬卻又必經的工程。『聰明人把房子蓋在磐石上。雨淋、水沖、風吹,撞著那房子,房子總不倒塌。因為根基立在磐石上。』

千萬不要以為重灌是偶然,要把它視作必然,因為當我們常常犯錯,就不會出大錯。因此我們第一個界定這流程很重要,而且為了要方便日後維護。首先我們檢視手動的時候做了哪些工作。

  • 第一個是SSH連線能力,主要套件如下
sudo apt install sshguard openssh-server mosh

對於mosh有興趣的朋友,可以參考 https://mosh.org這介紹

  • 第二個步驟是安裝KVM套件
sudo apt install qemu-kvm qemu-utils seabios ovmf hugepages cpu-checker libvirt-bin bridge-utils virt-manager
kvm-ok # test if kvm ok :)

我的結果是

icekimo@Kris:~$ kvm-ok # test if kvm ok :)
INFO: /dev/kvm exists
KVM acceleration can be used
icekimo@Kris:~$
  • 第三個步驟是安裝Docker相關套件,這裡採用的是docker-ce
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker icekimo

安裝完測試一下

icekimo@Kris:~$ docker --version
Docker version 19.03.2, build 6a30dfc
icekimo@Kris:~$
  • 第四個步驟是基礎工具,比如說git,但基本上只是為了確保工具的存在
sudo apt install git net-tools exfat-fuse exfat-utils ansible 

再來各位喜歡什麼就放什麼吧

  • 第五個步驟是調整網路架構,增加Bridge架構
 # 增加virbr0 
 sudo ip tuntap add dev tap0 mode tap
 sudo ip link set tap0 up promisc on
 sudo brctl addbr virbr0
 sudo ip link set dev virbr0 up
 sudo ip link set dev tap0 master virbr0
 # 編輯網路設定檔 /etc/netplan/*.yaml
 # 依據實際網卡界面變更enp5s0名稱 使用 ip a | grep ": en" 指令處理
 cat << EOF > /etc/netplan/01-netcfg.yaml
 network:
  version: 2
  renderer: networkd
  ethernets:
    enp5s0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [enp5s0]
      parameters:
        stp: yes
        forward-delay: 4
      dhcp4: yes
 EOF
 sudo netplan apply # 套用新變更
 brctl show # 檢視系統

結果範例(無docker0)

icekimo@Elizabeth:~$ brctl  show
bridge name	bridge id		STP enabled	interfaces
br0		8000.6e4ff8dcfd9f	yes		enp5s0
virbr0		8000.525400b9ebb7	yes		virbr0-nic
icekimo@Elizabeth:~$
  • 如果主機具有多種儲存媒體,可以對檔案系統架構調整。現在linux kernel在userspace開放filesystem的掛載,因此可以做一個「專用」的調配。比如這台HPE8300 SFF因為年代關係(2012),UEFI BIOS不能從nvme SSD開機。因此在Kelly上需要先用一個SSD進行開機,然後才能存取nvme。但是如果用老方法,那還要分割很多區,再個別掛載到高IOPS需求的區域,比如libvirt與docker的目錄,同時也可以避免以前常見/var爆炸後,整個系統停擺的悲劇。對/etc/fstab的範例如下
# 掛入nvme ssd
UUID=b866c04e-30e6-49fd-befb-9a907040da40 /media/nvme0n1p2 ext4 nosuid,nodev,nofail,x-gvfs-show 0 0
# 下面示範libvirt虛擬機的映象檔實際存放在/media/nvme0n1p2/qemu-images
/media/nvme0n1p2/qemu-images	/var/lib/libvirt/images none bind

因此這樣,就可以在KVM與docker中享受到SSD超高 IOPS。


上一篇
The First Angle (part 1)
下一篇
Races to Zion
系列文
Oops Step ( Home lab of a kind ) 34

尚未有邦友留言

立即登入留言