顯示具有 DRBL企鵝龍 標籤的文章。 顯示所有文章
顯示具有 DRBL企鵝龍 標籤的文章。 顯示所有文章

2023年10月26日 星期四

調整Ubuntu 22.04的nfsd數量方式有變

過往調整NFS daemon (nfsd)數目是去修改/etc/default/nfs-kernel-server裡面的參數 RPCNFSDCOUNT但是這招在Ubuntu 22.04上已經失效。要檢查目前系統在執行的NFS daemon有幾隻,用下列指令:

  • ps -ef | grep "\[nfsd\]" -c
至於有多少個客戶端連線,則可用下面的指令:
  • netstat -nt | grep :2049 -c

2019年5月3日 星期五

DRBL讓不同用戶使用不同的開機核心

《DRBL讓用戶端開機選擇特定系統核心》一文說明DRBL要如何所有機器用統一的新核心開機,但對於一套PC cluster裡面有著不同硬體架構的機器(拗口的名稱叫做「異質性分散式系統」),單一的核心很難滿足不同硬體架構的機器。

修正方式即是客製化異質分散式系統核心」,也就是對於不同的機器編譯相對應的系統核心,讓每一台機器開機的時候自動去找自己對應的核心

DRBL的運算節點開機都是透過網路,故先把開機核心放到DRBL server上:

2019年3月22日 星期五

mount: unknown filesystem type 'ext4'

在DRBL客戶端的系統上有mkfs.ext4這個指令,分割區確認也是做成ext4,但是在掛載的時候出現標題所示之錯誤訊息:
    mount: unknown filesystem type 'ext4'

2018年10月22日 星期一

縮小initial ramdisk檔案initrd的大小

製作完開機核心後,也會更新模組modules,因此要順便更新inital ramdisk這個放在/boot/initrd-x.x.x.x的檔案。有時候這個檔案會很大(幾百MB),這是因為編譯出來的modules裡面的debug information沒有被去除,故modules會變很大。解決方法是在編譯與安裝modules的時候用下面的指令(需要root權限):
  • make INSTALL_MOD_STRIP=1 modules_install
上面這個指令讓在編譯modules的時候,會使用--strip-debug來去除debug information

2018年10月11日 星期四

Intel微型電腦NUC可跑的Linux核心

Intel 微型電腦NUC7i3BNH,使用舊版Linux核心因為沒有網路I219-v的驅動程式,而沒辦法使用DRBL來做網路開機。搜尋一陣後,最終發現Ubuntu 16.04做的USB系統碟可開機,下面則是Ubuntu 16.04 LTS搭配的kernel與module:
  • Kernel:4.4.0-137-generic
  • Module:e1000e version 3.2.6-k 

2018年8月16日 星期四

DRBL的client上執行R出現錯誤

在DRBL的client上面執行R,出現了下面的錯誤訊息:
Error : .onLoad failed in loadNamespace() for 'utils', details:
  call: options(op.utils[toset])
  error: invalid value for 'editor'
In addition: Warning message:
package "methods" in options("defaultPackages") was not found 
Error : .onLoad failed in loadNamespace() for 'utils', details:
  call: options(op.utils[toset])
  error: invalid value for 'editor'
In addition: Warning message:
package 'utils' in options("defaultPackages") was not found 
Error : .onLoad failed in loadNamespace() for 'utils', details:
  call: options(op.utils[toset])
  error: invalid value for 'editor'
In addition: Warning message:
package 'stats' in options("defaultPackages") was not found 
During startup - Warning messages:
1: package 'methods' in options("defaultPackages") was not found 
2: Setting LC_CTYPE failed, using "C" 

2018年8月14日 星期二

DRBL重新部署後NFS的exports設定

根據《DRBL企鵝龍重新佈署》,用下面指令重新部署clients:
  • drblpush -c /etc/drbl/drblpush.conf
這時候要注意到,原本的/etc/exports會被更新。需要從舊的檔案/etc/exports.drblsave裡面撈出一些設定,放回更新後的/etc/exports裡面,再用下面的指令重新啟動:
  • exportfs -auv   #關閉所有NFS服務
  • exportfs -arv   #啟動所有NFS服務
  • showmount -e    #檢查export的IP
_EOF_

2018年2月14日 星期三

DRBL client使用支援GPU加速卡的核心

當DRBL server安裝好了GPU加速卡的modules後,client端也要設定成相同的核心編號,這樣client開機以後才能夠使用GPU來加速。DRBL預設幫client做的核心會是系統最新的那個核心,但如果modules安裝的核心不是最新的,那麼client開機後就會因為 /lib/modules/KERNELNAME/ 下面沒有GPU的kernel module導致無法使用GPU,解法如下

假設server上面安裝了GPU modules的核心編號是4.10.0-42-generic,使用下面指令來指定DRBL client使用還有GPU加速卡的模組的核心:
  • /usr/sbin/mknic-nbi -a -k 4.10.0-42-generic.nptl 

2017年10月18日 星期三

Linux的網路開機流程

在本地端機器沒有安裝系統的情況下,透過網路的伺服器提供的服務來開機,此過程叫做網路開機(netbooting)。流程請參考Netbooting on POWER - An Introduction
  1. 本機詢問動態IP(Dynamic IP discovery)
    DHCP伺服器給予動態IP(Dynamic IP response)
  2. 本機請求開機啟動程式(Request for grub2, grub2是一種boot loader)
    TFTP伺服器給予開機啟動程式(Deliver grub2 binary)
  3. 本機請求開機啟動設定檔(Request for grub2.cfg)
    TFTP伺服器給予開機啟動設定檔(Deliver grub.cfg file)
  4. 本機請求kernelinitrd(Request kernel/initrd)
    檔案伺服器給予kernel與initrd
  5. 本機請求與接收其他安裝內容(Request and deliver installer content)

2017年10月17日 星期二

Mac的網路開機

Macintosh可以從網路開機,這時候在同個區域網路裡面必須要有一台Macintosh安裝OS Server並開啟Netinstall功能,這樣才能夠提供網路開機。OS Server有下列三種映像檔:
  • NetInstall Image:用此映像檔,網路開機後,會直接進入安裝程式,然後再開始安裝系統到本地端的硬碟上
  • NetBoot Image:用此映像檔,網路開機後,本地端的硬碟將不會用到,而是根據NetBoot映像檔裡面的資料來開機。請注意這樣開機後所有的系統都是透過網路過來的,要是網路不夠快的話本地端機器運作上會很卡
  • NetRestore Image:用此映像檔,網路開機後,本地端的硬碟將會被NetRestore映像檔給蓋過去。這是一種快速安裝系統到本地端的方法

2017年9月15日 星期五

Ubuntu 16.04安裝DRBL的注意事項

在Ubuntu 16.04上安裝國網的DRBL,基本上參考這兩篇:
但在安裝的時候,可能會因為Ubuntu16.04的DNS設定,造成/etc/dhcp/dhcpd.conf的檔案出現錯誤,造成DRBL clients無法透過DHCP server拿到IP。設定DRBL server上面的DNS請參考:
由於DRBL Server網路設定都很固定,所以通常會把network manager關掉,而只有用networking來設定網路,這時候網路設定檔案就會是/etc/network/interfaces
若在/etc/network/interfaces設定多個dns-nameserver,將會導致drblpush這個指令在設定/etc/dhcp/dhcpd.conf的時候,在option domain-name-servers這一行出現錯誤。有下面兩種解法:
  • 解法1:在設定DRBL的時候,/etc/network/interfaces裡面只有設定一個dns-nameserver
  • 解法2:做完drblpush以後,手動修改/etc/dhcp/dhcpd.conf的option domain-name-servers


2017-Sep-25 更正上面的錯誤

上面會導致DRBL設定錯誤,是因為我設定/etc/network/interfaces的方法錯了,正確設定兩個dns-nameservers應該如下(以google DNS 8.8.8.8與8.8.4.4為例子,參考這篇的設定):
  • dns-nameservers 8.8.8.8 8.8.4.4
_EOF_

2017年7月15日 星期六

編譯Debian的核心(kernel)

這是一篇紀錄在2010年以前某機器d編譯核心的始末:
  • 系統: Debian (Lenny) 5.0.4
  • 核心:kernel 2.6.26-2-amd64升級至2.6.30.3

2017年6月30日 星期五

Ubuntu 16.04設定DNS

以前手動設定DNS是在把DNS server加在 /etc/resolv.conf 這個檔案裡面,但在Ubuntu 16.04(Xenial Xerus)卻不是直接編輯/etc/resolv.conf 這個檔案,因為這個檔案會被 一個叫做 resolvconf 的程式所控制。以下提供兩種解法:

解法1:

現在則是直接將dns-nameserver加入到 /etc/network/interfaces 裡面
在每一張interface裡面,分別加入下面的設定:
  • dns-nameserver 8.8.8.8 8.8.4.4
這樣就會加入兩個dns servers了

2017年6月29日 星期四

Ubuntu 16.04僅更新安全性套件

Ubuntu登入時,都會通知是否有套件需要更新、其中有幾個屬於安全性更新。若想要知道究竟哪些套件屬於安全性更新,下指令:
  • apt-get -s dist-upgrade |grep "^Inst" |grep -i security 
若要安裝這些安全性更新套件,則是以root的身份下指令:
  • apt-get -s dist-upgrade | grep "^Inst" | grep -i security | awk -F " " {'print $2'} | xargs apt-get --yes install

2017年5月3日 星期三

Ubuntu 16.04只用內顯而不用獨顯

在一台同時有intel內顯與nvidia獨立顯卡的ubuntu 16.04主機上,希望僅僅只用內顯來顯示畫面,獨顯是要用來做GPU加速。先用下面指令安裝nvidia顯卡驅動(這邊找到此顯卡的驅動版本是375.39,請依照自己的顯卡型號去找對應的):
  • sapt-get install libcuda1-375 nvidia-375 nvidia-375-dev nvidia-libopencl1-375 
安裝完之後,會發現登入畫面還在,但是輸完帳號密碼之後不會直接進入圖形介面,而是直接跳回登入畫面。這是因為系統目前把顯示的工作直接丟給獨顯,而不是內顯。
解決方式:先按 Ctrl-Alt-F1 跳到virtual console,輸入:
  1. prime-select intel
  2. service lightdm restart
第一個指令是要求系統的顯示用intel的內顯,第二個指令則是重新啟動登入畫面。都做完以後,應該就可以登入到圖形介面了。

2017年4月28日 星期五

用mdadm做/boot要注意metadata

系統開機區/boot若是用mdadm做RAID-1,要注意選擇RAID metadata存放的方式。最保險的方式是在mdadm後面的參數下--metadata=0.90。若是直接用mdadm預設做RAID-1,會出現下面的提醒訊息
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
這是因為RAID metadata (superblock)放置的位置不一樣,舊款的boot loader可能無法辨識造成系統無法開機。所以說最安全的方式就是把/boot磁區的RAID-1設定成0.90這種方式。

2016年7月27日 星期三

DRBL讓用戶端開機選擇特定系統核心

DRBL伺服器與用戶端可以分別使用不同的系統核心(kernel)。例如說用戶端有特殊硬體,需要將驅動程式給放到系統核心,這時候就必須要指定特別的系統核心給用戶端。參考DRBL官網FAQ《用戶端電腦如何使用DRBL server上的某個版本核心?使用下面指令:
  • /usr/sbin/mknic-nbi -a -k 2.4.22-1.2199.nptl 

用戶端重開機後用的核心就會是kernel-2.4.22-1.2199.npti了。至於說要怎樣設定不同的用戶端指定不同的系統核心還需要研究看看

_EOF_

2016年7月26日 星期二

DRBL用戶端開機啟動rc.local的服務

參考DRBL企鵝龍官網的文章《如何開啟client端的rsh服務?》,執行:
  • drbl-client-service rc.local on
等它跑完之後,所有的client端下次重新啟動就會執行rc.local了。

若是覺得設定每一台client的rc.local很麻煩,可以先到/tftpboot/nodes下面設定第一台192.168.9.1/etc/rc.local,以這個檔案作為模板拷貝到其他的機器上面
  • for i in {2..234}; do cp 192.168.9.1/etc/rc.local 192.168.9.$i/etc/rc.local; done
  • for i in {2..234}; do diff 192.168.9.1/etc/rc.local 192.168.9.$i/etc/rc.local; done
第一行指令是拷貝,第二行是確認是否檔案都一樣

_EOF_

2016年3月30日 星期三

DRBL手動方式加入帳號

DRBL這套無磁碟開機系統已經提供了一些現成的指令可以加入帳號,但在這邊討論一個奇特的狀態:想從另外一套的DRBL上面把大量的帳號給搬到新的DRBL上(安裝方式參考《設定DRBL企鵝龍》),但是希望不要修改密碼也不修改uid與gid,可以依序這樣做:
  1. 到舊DRBL的/etc/passwd內,複製帳號的所有內容,放到新的DRBL的/etc/passwd。這個步驟請自行注意uid不要有所衝突
  2. 把舊DRBL上/etc/shadow內,複製帳號的資訊與password hash到新的DRBL的/etc/shadow。一樣請注意不要有uid上面的衝突。至於說/etc/shadow的內容與製作password hash,請參考aychedee的這篇文章
  3. 用root輸入指令make -C /var/yp 
# make -C /var/yp
make: Entering directory `/var/yp'

make[1]: Entering directory `/var/yp/你的DRBL名稱'
Updating shadow.byname...
Updating passwd.byname...
Updating passwd.byuid...
Updating netid.byname...
make[1]: Leaving directory `/var/yp/你的DRBL名稱'
make: Leaving directory `/var/yp'

以上是黑手作法加入帳號,不過並不是很建議這樣做... 除了可能出錯外,家目錄下面們每個使用者的位置還要對應到/etc/passwd裡面的資料。真正要做還是參考《大量移除使用者帳號》,這個方式可以做到
  • 新增或刪除單一使用者,用drbl-useradddrbl-userdel -s
  • 新增或刪除多名使用者,用drbl-userdel -r
  • 根據檔案刪除多名使用者 ,用drbl-userdel -fdrbl-userdel -l
  • 根據群組刪除多名使用者,用drbl-userdel -g
_EOF_

2016年2月1日 星期一

網路喚醒 Wake-on-Lan

網路喚醒 Wake-on-Lan (WoL),可以讓遠端的電腦透過網路啟動。
實際使用則是選一台同一個網域內開機的機器,用WoL丟出魔法封包(magic packets),關機的網卡收到這個封包以後,就會讓系統啟動。
應用在DRBL裡面則是DRBL server丟出魔法封包,引導DRBL clientsd開機
  • DRBL server:必須要安裝wakeonlan這個套件
  • DRBL clients:BIOS必須要設定可以從Wake on LAN開機