Linux 私房菜(鳥哥):這些年我和Linux 的那些事
作者簡介:
鳥哥(蔡德明)
臺灣知名 Linux 網站站長,臺灣成功大學環境工程系博士,就學期間建立“鳥哥的 Linux 私房菜”網站,其著作《鳥哥的 Linux 私房菜 》是兩岸三地最暢銷的經典 Linux 入門書,曾任臺灣多家知名 Linux 教育中心講師。專長是 Linux 作業系統、網站規劃與維護、網路安全,研究方向是網路應用整合。
前言
章整理自 蔡德明(鳥哥)在GOPS2017 · 深圳站的演講。高效運維社群致力於陪伴您的職業生涯,與您一起愉快的成長。
我叫蔡德明,人稱鳥哥。我姓蔡,外號菜鳥,大學三年級就會有學弟叫我菜鳥學長,我讓大家統稱鳥哥。
我英文不是很好,我想給名字叫 Vegetables Bird(VBird)。在求學過程中,我小時候讀鄉村學校,父親是捕魚郎,從來沒想要把我培養成讀書的小孩,他讓我讀到小學畢業,就買一艘船全家人出海捕魚。
有一個契機,國二時分到放牛班,我從來沒考過第二名,跟其他班級相比,我成績不算很好。這時候有一個很高的成就感,覺得唸書蠻好玩的,隨便念念就能考第一名。高中考到臺灣南部高雄中學,大學是成功大學環境工程,讀完後對碩士有興趣,讀了成功大學環境工程所。
最有趣的是我們老師讓我讀博士,家裡人「說讀完博士出來後可能沒工作可以做」,我爸:「沒工作,老爸養你」。我就開始念博士,可以看到兩個很有趣的數字,從1996年入學到2006年畢業,這個博士學位我一口氣唸了10年。
為什麼接觸 Linux?
是啊,為什麼接觸Linux? 我讀的是環境工程,在求學中不在求學過程中不可能動用電腦。當時,我蠻喜歡做 DOS Driver 的設定,只是為了打遊戲。那時打遊戲有聲音是很困難的事情,所以會做比較多的測試和實驗。那時,我連 UNIX 是什麼都不知道。
接觸 Linux 是 1998年念博士的,我的指導教授跟我說,我們跟別人簽約,兩年內要完成,機器已經買了,大概20萬人民幣左右。他讓我開啟,裡面是 SOLARIS,這有點像 Windows,那時聽說它很厲害,一臺小小的PC電腦就100萬臺幣。
關於 SPARC 操作的蠢事,工程師來維護說系統不能有太多的賬號,等他走了之後,我們把 ETC 的密碼刪除到兩個賬號,後來我們讓他再來一次,因為我們沒賬號了……,從此之後話不能亂講。
學人家用工作站,在臺灣用 Win98 Xdmcp,大家知道 Win98會遇到的問題,後來出來的 Win2000 讓我們很害怕。我們跑 Modeling 三天都不能關機。通常運作到兩天半會宕機,Win98宕機很正常,我們從來沒有怪它。
當時被逼著學很多技能,包括 Fortran Programing、Compiling Program、C shell scripting。為什麼無法開機?查了半天是電源線沒有插,有時間開不了機,因為光碟沒有拿出來。跟我們接洽的運維人員蠻可憐的。
為什麼接觸 Linux Server?
因為實驗一次,呼喚兩次。我們覺得這個東西蠻好玩,上世紀(1998年)Mailbox 總體流量大概 50mb,一個檔案是 10mb,傳送就比較困難。後來出來 File transfer,唯一沒有的是防火牆,預設的服務都開了。我會看書學習,書上怎麼說,我就怎麼做,結果是重關。
我現在談的技術很低階,我是環境工程的人,永遠不知道什麼是 NAT。我的臺灣師傅 Netman 說「這麼大的人,不好好自己學習,自己去看資料」,我念書這麼久第一次被說不用功,所以我慢慢學習。
最後開始投入,光專有名詞就要找好幾個,那時候讀書是很辛苦的。我的結論是:書是人寫的,錯誤是存在的,人是欠罵的,我們運維人員常常會被到很多客戶罵,有時候被罵是很快樂的,不要相信教育機構說要「快樂的學習」。
為什麼會有私房菜?
小弟我特別健忘,今天見面,明天可能就忘記了,所以我是很健忘的人。
我會一直寫的原因是我讀了10年博士,我老闆第3年後,每年都對我說「你明年會畢業」,這就說了七年。
大家做事情的時候,我們拉著學生坐下,速度會很快,「你明天交給我」、「明天有點難」、「下個禮拜一定要交給我」,一直說到畢業,時間比較多,我開始做文章的撰寫,第一次聽到這件事的時候非常開心,但是實驗室需要有人管。
這是最早的檔案,後來足足七年,慢慢補上,2002 年時比較有趣。接觸原廠大概是 2002 年,接觸到原廠的訓練檔案,自己沒學到就不會想接觸它。我的 Netman 師傅邀請我來補習班,沒想到很痛苦,我要自學、上臺教課,要花心思如何教別人。
我纂寫的經過,開始時很隨興。我們希望讓一些朋友快速的進入IT產業,所以寫得比較輕鬆。各位有沒有翻過在大學記的筆記?如果你有記筆記的習慣,五年後你開啟看看,發現看不懂自己的筆記。我連當時想到的笑話都寫進去了,我開始慢慢的編輯。
如果有興趣寫文章,不要一開始就想寫一本書,很多業界朋友開始時寫一本書,他寫了第一章就寫不下去,他開始覺得自己寫不好,又重新寫,反覆不斷的寫第一章,後面九章都沒寫,一拖就是三年。
寫完文章後會覺得自己真了不起,可以寫這麼多東西。「半瓶水響叮噹」,這是在論壇中回答的結果,這是在2002年的時候做的。真正吸引大家注意的原因,小弟是時勢造英雄,也不能說英雄,就是窮作家。
Linuxfab 當時是臺灣很厲害的論壇,十分之一講技術,十分之九講政治,裡面常常在吵架,所以裡面經常很熱鬧,倒了之後沒人有地方炒,慢慢跑到網站裡學習。
網站平時的總人數時是一兩百人,現在人數是四五個人,有時候有三十幾個就會很害怕。我們很多朋友是挑錯字魔人,你的字寫得不對,不要講政治。很多朋友說這說得不錯,業界有遇到這樣的問題,解答我的疑惑。
2002 年出現 TnLUG,在臺南億載金城,我們每月都會吃飯聚餐,當時年紀小,很青澀。裡面有一個大哥會免費把公司會議廳借給大家學習。
每個月都有演講,有朋友交 Xbox 拆解、如何泡妞等,不侷限在 Linux 和 OpenSource,最後這個團隊就是為了聚餐。這是臺灣的社群論壇,我很感謝我的老闆留了我 10 年,其中 7 年讓我寫文章。
寫作需要傻勁,有一股傻勁就可以寫下來,你收到的會比當初貢獻的還多。Rookie 會比較有趣,因為那時候遇到很多問題,把它記載下來,可以幫助很多同輩。我現在寫不出常見的問題,還好我現在接觸很多 Rookie。
我的資料從來不是給高手看的,只是給 Rookie 看的。跟 Rookie 講話一定要多說,不然他不聽。他說我的書是神奇的橘黃色書皮,剛寫好,接受了出版社的邀稿。
第一本書有三成資料是錯的,但很多玩家覺得寫得很好,因為把他們的心聲寫出來,我遇到的蠢事,他們也遇到過。我們看到教科書上說絕對不會錯的流程,而我會說你會遇到什麼錯誤,只要你不寫「-IF 斜線」,都有救。init 變成 Systemd,學習的過程是痛苦的,什麼都是定製化處理。第四版將會在北京出版。
2006年畢業後,我到學校教書,遇到很多奇怪的問題,慢慢的把它們解決掉。這幾年在臺灣觀察的現象,比較有錢的企業不再自己維護機房,IT丟在雲裡,所以雲非常重要。
20 個人以下的小公司在臺灣非常多,老闆很怪異,要完成對公司任何訊息流的監控,他們希望所有資訊進出都要通過這臺小 PC,因為他們不想請 IT 運維人員,直接請外包商做維護,臺灣外包商的收入還不錯,因為他只有老闆自己一個,老婆是會計,請了一個員工,一年的營業額可以達到 700 多萬臺幣,這是針對傳統產業設計開發的概念。
臺灣有很多自建的 Private Cloud,現在人力比較短缺。在大陸這方面發展很快,而在臺灣,這個部分才開始看到問題,開始培訓人才,速度比較慢,2013-2015 年,我經常到北京學習。
我在學校會做一些專題,解決我們的問題。開始我們要求廠商幫助我們裝還原卡系統,每次開機都會自動進入 Win XP,我們自己要裝軟體,Software 要安裝軟體,我們建議系主任把它撤掉,撤掉後誰來處理,我開始帶學生搞專題。
2008年前,解法是多重作業系統,我教 Linux 都會教破壞性教學,這時候會遇到很多問題,下一堂課的老師不能上課,開不了機。我想這樣不行,考試要先把環境整合在學校教師實際環境,韌體不成功,這不是解法。常用的方式,我們找到了系統。
鳥哥名言「我沒有錢」,有一次參加研討會,有一個學生說鳥哥有一句名言,我真的發現我曾經說我沒有錢。我們發現要玩雲虛擬,沒有錢是玩不起的。這是我們當時遇到的問題,搭建雲虛擬系統,開始做了很多學習,學習是痛苦的,在痛苦裡找出自己的快樂、小確幸。
在學雲虛擬化的時候,發現用 RADI 效能的優化,早期把兩臺主機加了三個網絡卡,直接做串聯,後來發現只有一張網絡卡會生效,三張網絡卡除了浪費電以外,沒有任何的效果。我們遇到很多的問題,這是後來解決問題時學到的技巧。
GoCloud,開始我們玩的瓶頸在這邊,因為沒有錢。那時候我們有一個網絡卡,插了網絡卡後,這邊都沒問題,瓶頸來到這邊,教室連到系統,頻寬不夠,內部跑很快,外部跑很慢,不斷的發展問題,不停的學習。剛剛幾位前輩提出問題,剛剛匯入會想象不同的問題,慢慢調整,最後可以調整得蠻好的。
目前我們在做雲系統 Client 端的解決方案,主要是 Raspberry pi 和 PCI pass-through,現在用一臺 PC 插兩張顯示卡,這是很 low 的技術,至少解決自己的問題。
如果經理或領導讓運維自己解決某個問題,這不是痛苦,而是一種成長,你學會這些技巧後,對大家往後的職場都很有幫助。
文章來自微信公眾號:高效運維