2014年10月1日 星期三

從最底層基礎建設到軟體開發,無所不包的雲端(Openstack Day 2)

今天將介紹ICEHOUSE版本的Openstack

所擁有的十個子專案

分別其實對應到 目前 三個主要的功能

Compute , Networking , Storage .

的部分 只有 Nova, Neutron ,Swift,

其他相關的子專案,則是

相互扶持 其Compute, Networking Storage 部分。


Keystone  - Identity Service
- Authentication and access control.
主要是用來管理者,使用者 與 專案與專案互動時權限的設定

Glance   - Images Sevice
- discovery , registration , and delivery service for virtual disk images.
提供虛擬機器的Guest OS 磁碟映像檔

Nova  - Compute Service.
- automatically large-scale deployments of virtual machines.
部署虛擬機器到實體機器

Cinder - Block Storage
- allow block devices to be expose and connected to compute instances for expanded storage.

當虛擬機器空間不足時,提供類似ISCSI方式讓虛擬機器去掛載使用

Horizon - Dashboard
- Self-service Web portal
提供親切友善的網頁界面,方便管理者對主機控管時來使用。

Swift - Object Storage
- Large-scale, permanent and redundant storage.
類似於 Dropbox 的檔案儲存系統

Neutron - Network Service
- Pluggable, scalable and API-Driven System for managing networks and IP Address
提供網路的切割(VLAN)於OVS(open vswitch) 與 ip 管理等功能。

Ceilometer - Telemetry  Service
- monitor and meter for billing , benchmarking , scalability , and statistical purposes
監控其虛擬機器所運行的時間與其硬體規格,
統計其運行狀態。
並且透過此功能可以得到記賬的功能

Heat - Orchestration Service
- orchestrate multiple composite cloud applications by using template format through API
此子專案則是已application 為主的想法,來開設你所需的資源於雲端環境上

Trove - Database Service
此專案 類似於Amazon 的 Database租借方案,在這則是來單獨提供資料庫接口。


明天將介紹 Openstack 的 專案關係圖與 其安裝的示意圖

Day xx ending 

從最底層基礎建設到軟體開發,無所不包的雲端(Openstack Day 1)

接下來的幾天,

筆者 將 介紹Openstack專案與其實作的部分。

此雲端作業系統專案從2010發展至今,已經有接近五年的歷史了。

目前各家大廠已經為他為標準開始實際應用此套雲端作業系統

ex: HP , rackspace.


而其他廠商紛紛加入其開發行列如:

Dell , Intel , Cisco , AMD , REDHAT

目前已經發佈的版本已有了8個版本

從A版 - > I版本。 而J版已經也進入開發期了。


他支援各家Linux的作業系統,來做安裝
如:Ubuntu , RHEL , SUSE , Debian , Fedora

而虛擬化部分從 OpenSource 到 商業軟體

KVM , Xen , Virtualbox , VMware , Hyper-V 都已經於現行的專案做支援。

資料庫部分則是支援PostgreSQL ,  MySQL , SQLite



Openstack 其特色莫過於可以將計算,儲存,網路。重新切割在管理分配使用的功能了。

以往主機購買進來,最小的單位的就是單台主機。

而透過Openstack 的虛擬化管理功能,

我們將可以把 最小單位縮減到管理者所需的機器規模。

重點是他提供了Dashboard -WEB GUI

提供管理者可以管控其下計算, 儲存, 網路資源。

提供相當高的便利性。


據官方的文件提出了Openstack 的五個優點

Component base architecture 

 可以快速新增其架構

Highly available
  高可用性

Fault tolerant

容錯性架構 ,

獨立其process, 來避免其連帶錯誤性

Recoverable

由於其設計,可以容易的被還原與除錯

Open standards 

擁有開放並已經實踐的API





而上圖則是Openstack 專案的 架構圖,可切分為主要的三個部分。

Compute ,  Networking , Storage .

三個專案原則上可以分拆出來單獨使用,也可以組合兩個來完成你所需的功能部分。

當然以一個雲端服務商來說,端看你想提供的服務架構大小。

若只是內部評估使用,可能就只需單獨使用Compute 的部分。


明天將介紹其十個細部專案的用途與名稱

先透露其專案名稱 ,提供大家可以先行學習

Keystone , Glance , Nova , Cinder , Horizon

Swift , Neutron , Ceilometer , Heat , Trove

Day xx Ending








從最底層基礎建設到軟體開發,無所不包的雲端(DAY 4)

從第一天到第三天我們提到了

怎麼規劃各種設備,

應用在一個 Open Source Cloud 中


第四天我將介紹 佈署大量主機的工具。

這對有大型主機或者電腦數量超過一定量級的管理者來說。

非常合用。



我甚至稱它們為 佈署界的 倚天劍屠龍刀 


DRBL + Clonezilla

官網連結:

http://drbl.nchc.org.tw/

http://clonezilla.nchc.org.tw/


我們透過這兩套工具,來快速佈署雲環境所需的Host OS。

筆者利用這兩套軟體,快速的可以將五十台左右的主機在4-6小時內可以完全佈署完成。

若各位不知道要抓取那一個版本,

建議可以抓取DRBL的版本

現在的DRBL中,內含Linux桌面與Clonezilla。

入手門檻較低,較為容易上手。


目前這兩套是採取GPL授權,不需花費任何金額就可以得到這麼棒的功能。趕快來跟著筆者學一下吧:D


今天先提Clonezilla

他主要是作類似商業版本的GHOST 的功能。卻是完全免費的軟體。

更重要的他是國產軟體喔^^


筆者這裡 用 DELL的 IDRC做示範

Download下來 Clonezilla iso 後

連上 IDRC 的管理頁面

(需先於主機面板上先設定完成後 存檔後,才能用瀏覽器連上
    需安裝JAVA或者使用IE瀏覽器,才能使用Virtual console preview)


右上會有media or 介質的 按鈕 點選後,進去再點選您的CD部份的瀏覽按鈕
再選擇Clonezilla iso 。



再點選連接CD/DVD

即可將你的iso接上遠方的主機(不用辛苦的到機房更換光碟,重開機。


直接按下Enter開機即可。

中間有語系選擇,請選擇你覺得能了解的語言。

這裡已正體中文為例

選擇模式時

請選擇Device-Image功能。這樣晚點我們才能應用DRBL將此image倒到多台主機中。



這裡我只講解2.其他就請各位自己參閱官方文件
透過遠端ssh登入,可以將遠端的磁碟掛載回此主機中。

提供影像檔的儲存。

點選後需輸入您的環境可以連線到ssh 伺服器的 網路環境。

設定完成網路後,
再設定
你遠端linux的伺服器IP與上頭可登入的帳號與密碼。

當然那使用者的儲存空間要相對的夠用,以免上傳image的時候會遇到檔案寫入失敗的問題。



此處設定的時候,務必要設定你登入的使用者可以寫入的空間。

例如/tmp or /home/youracoount  or other )

這非常的重要,而且還要設定的是絕對路徑。

否則不會正常掛載:

設定完成後,就將遠端的磁碟掛載回來,來提供印象檔的寫入。



這裡會自動偵測遠端的磁碟上是否有印象檔的資料夾。
若您沒有的話,再這裡可能跟筆者看到menu畫面不太相同。

但今天主要講到要使用savedisk功能。

點選第一個功能後,再輸入你要儲存的名稱(建議以主機名稱-IP-時間來建立印象檔的資料夾)
方便其之後清理使用

接下來選擇你要備份的磁碟(之後要設定到所有雲端主機的OS)

接下來的都可以使用預設值即可。(代表你可以快樂的按enter*4)

然後最後會問你要確認其硬碟是否是你要用來備份的磁碟。

確定完成後,


就會開始備份。

準備好此份備份,明天我們才能用他來還原第2台或者多台主機。

Day 4 ending ~~~




2014年9月30日 星期二

從最底層基礎建設到軟體開發,無所不包的雲端(DAY 3)

前面兩天設計了

硬體規格與網路選配設置。


今天來談,機器群組的配置。


已筆者目前所管理兩座的機器群組。


基本上可分為下列三種類型。


刀鋒伺服器: 使用空間少,計算密集,但儲存硬體擴充少

1U   伺服器: 使用空間次高,較好擴充儲存硬體。

2U   伺服器:使用空間高,儲存硬體擴充彈性高,支援PCI-E的顯卡與SSD的儲存裝置。



最佳化方案:
當預算足夠
可添購刀鋒伺服器與2U or 1U伺服器組合互補。

甚至預算足夠的時候,直接額外購買大容量的ISCSI外接儲存系統 也是 一個不錯的選項。

當預算不足時 ,使用1U與2U伺服器混搭其實是不錯的選擇。

且可以沿用現有的網路設施與混搭原先的閒置較老舊的機器(Switch ,機架空間,機架伺服器)。

在於實際購買機器群組時,請考量原先服務的規模,
與是否仍有堪用尚未至年限可整理至雲環境做使用的主機。

現今10G網卡已經降到相對便宜的價格,建議可用來擴充於舊的實體主機來做使用。



而於機器群組規劃部份

主要分為計算群組與儲存群組,

計算群組可搭配有SRIOV支援的主機板、網卡與CPU(core數多)。

儲存群組著重的其實是硬碟效能與大小。

建議可以混搭SSD與傳統磁碟。而記憶體與CPU只需維持約cores * 4 與 約16G的記憶體

應該就相當足夠了。

透過CEPH(後面會介紹, 我們可以建造不同的Storage Level :D



Day 3 Ending. ....












2014年9月29日 星期一

從最底層基礎建設到軟體開發,無所不包的雲端(DAY 2)


先前Day 1 中 談了硬體規劃。

接下來介紹 內部網路建構規劃

由於IAAS 服務 通常來說 都會有需要提供對外的服務


所以一定有一個網路介面必須為 對外的介面

而 內部 則依照 其需求

可分為


虛擬機網路對外介面

虛擬機器網路NAT介面

虛擬機器額外分流介面 ( 或者 管理者 command 管理介面

分散式檔案系統(i/o)(或者外接Iscsi裝置介面)


這樣才能確保,大型的IAAS服務在運行時擁有足夠的頻寬。

並且推薦

將虛擬機器內部網路使用10G介面
還有分散式檔案系統使用10G介面

並且 可以將分散式檔案系統的介面設定成MTU 9000

將頻寬的實際值到達最佳化。



Day 2 Ending



2014年9月25日 星期四

從最底層基礎建設到軟體開發,無所不包的雲端(DAY 1)


基礎設施建構


當需要購買基礎設施來建構Openstack , CloudStack , Opennebula , Ezilla 等開放原始碼 IaaS 雲端環境時,與商業軟體不同,通常不會有與硬體相綁的銷售方案。

所以就必須由使用者自行開立規格,與Salesman 做接洽。


由於工作上需要自行評估購買需求與實際上服務應用。



購買主機並無特定廠牌愛好,但強烈推薦要有IMM 、iLO 、IDRAC 等等功能的主機。
便於管理者於遠端設定,而非每次需要安裝系統時,必須於機房修繕。



而CPU規格,建議依照所需虛擬化資源規劃。
目前10Cores CPU也進入約1500美金左右價格(Like Intel E5-2680v2)

若以2 Socket Server 便可搭載 20 核心 。 並且承載甚至40台主機。
其價錢與划算程度相當的高。


而記憶體部份,由於每台虛擬主機所需的記憶體大小不一。

但倘若要虛擬Windows主機,至少盤算要有單台虛擬主機需4G以上記憶體。


網路界面部分,若有一定資金建議可以購入10G的界面卡與Switch。

提供於分散檔案系統與VM的內部網路傳輸增進其性能。


由於近來SSD價格大幅降低,可以考慮引進作為分散式檔案系統所用。

或者使用ISCSI  等 外接儲存裝置。


下面是目前作者的工作環境。



CPU 規格 : 2 * Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz

記憶體: 64G DDR3

磁碟: 146G 15krpm * 1 600 * 4 10krpm 儲存磁碟

網路卡 10G*2 1G*2



Days1 Ending~

2014年3月10日 星期一

Puppet 學習筆記


Puppet Software on VM
http://info.puppetlabs.com/download-learning-puppet-VM.html


下載完成後,使用VMware Player 就可以開啟此虛擬機器。

開啟後,記得更改IP至你可以正常連入的網路環境


登入帳號密碼:

account : root
password : puppet


可以嘗試第一個指令

puppet resource service


puppet: 只要與puppet相關功能 , 幾乎都使用puppet 開頭  ,但無法單獨使用 必須搭配許多  subcommands

resource:此subcommand 可以插入或者修改resource

service: 這是puppet resource 指令的參數,可參照(官方手冊)


Resources :

每個系統裡頭都會有許多微小的單位所組成的

(Example:  user  account, specific file , directory of files , software package, running

service , scheduled cron job , other command

而且任何resource 都會有相關的 resources

Example :

 檔案: path and owner  and groups
 使用者:name , UID ,Groups


Resource 其內容


user { 'jonathan':

ensure => present,
uid = '507',



}