高端伺服器集群軟體環境搭建
⑴ 如何最快搭建linux伺服器集群
1.2.並行技術
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.使用MPICH構建一個四節點的集群系統
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.1 所需設備
1).4台採用Pentium II處理器的PC機,每台配
置64M內存,2GB以上的硬碟,和EIDE介面的光碟驅動器。
2).5塊100M快速乙太網卡,如SMC 9332 EtherPower 10/100(其中四塊卡用於連接集群中的結點,另外一塊用於將集群中的其中的一個節點與其它網路連接。)
3).5根足夠連接集群系統中每個節點的,使用5類非屏蔽雙絞線製作的RJ45纜線
4).1個快速乙太網(100BASE-Tx)的集線器或交換機
5).1張Linux安裝盤
2.2 構建說明
對計算機硬體不熟的人,實施以下這些構建步驟會感到吃力。如果是這樣,請找一些有經驗的專業人士尋求幫助。
1. 准備好要使用的採用Pentium II處理器的PC機。確信所有的PC機都還沒有接上電源,打開PC機的機箱,在准備與網路上的其它設備連接的PC機上安裝上兩塊快速乙太網卡,在其它的 PC機上安裝上一塊快速乙太網卡。當然別忘了要加上附加的內存。確定完成後蓋上機箱,接上電源。
2. 使用4根RJ45線纜將四台PC機連到快速乙太網的集線器或交換機上。使用剩下的1根RJ45線將額外的乙太網卡(用於與其它網路相連的那塊,這樣機構就可以用上集群)連接到機構的區域網上(假定你的機構區域網也是快速乙太網),然後打開電源。
3. 使用LINUX安裝盤在每一台PC機上安裝。請確信在LINUX系統中安裝了C編譯器和C的LIB庫。當你配置TCP/IP時,建議你為四台PC分別指定為192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。第一台PC為你的伺服器節點(擁有兩塊網卡的那台)。在這個伺服器節點上的那塊與機構區域網相連的網卡,你應該為其指定一個與機構區域網吻合的IP地址。
4.當所有PC都裝好Linux系統後,編輯每台機器的/etc/hosts文件,讓其包含以下幾行:
192.168.1.1 node1 server
192.168.1.2 node2
192.168.1.3 node3
192.168.1.4 node4
編輯每台機器的/etc/hosts.equiv文件,使其包含以下幾行:
node1
node2
node3
node4
$p#
以下的這些配置是為了讓其能使用MPICH』s p4策略去執行分布式的並行處理應用。
1. 在伺服器節點
,建一個/mirror目錄,並將其配置成為NFS伺服器,並在/etc/exports文件中增加一行:
/mirror node1(rw) node2(rw) node3(rw) node4(rw)
2. 在其他節點上,也建一個/mirror目錄,關在/etc/fstab文件中增加一行:
server:/mirror /mirror nfs rw,bg,soft 0 0
3. /mirror這個目錄從伺服器上輸出,裝載在各個客戶端,以便在各個節點間進行軟體任務的分發。
4. 在伺服器節點上,安裝MPICH。MPICH的文檔可在
5.任何一個集群用戶(你必須在每一個節點新建一個相同的用戶),必須在/mirror目錄下建一個屬於它的子目錄,如 /mirror/username,用來存放MPI程序和共享數據文件。這種情況,用戶僅僅需要在伺服器節點上編譯MPI程序,然後將編譯後的程序拷貝到在/mirror目錄下屬於它的的子目錄中,然後從他在/mirror目錄下屬於它的的子目錄下使用p4 MPI策略運行MPI程序。
2.3 MPICH安裝指南
1.如果你有gunzip,就d下載mpich.tar.gz,要不然就下載mpich.tar.Z。你可以到http://www.mcs.anl.gov/mpi/mpich/downloa下載,也可以使用匿名ftp到ftp.mcs.anl.gov的pub/mpi目錄拿。(如果你覺得這個東西太大,你可以到pub/mpi/mpisplit中取分隔成塊的幾個小包,然後用cat命令將它們合並)
2.解壓:gunzip ;c mpich.tar.gz tar xovf-(或zcat mpich.tar.Ztar xovf-)
3.進入mpich目錄
4.執行:./configure為MPICH選擇一套適合你的實際軟硬體環境的參數組,如果你對這些默認選擇的參數不滿意,可以自己進行配置(具體參見MPICH的配置文檔)。最好選擇一個指定的目錄來安裝和配置MPICH,例如:
./configure -prefix=/usr/local/mpich-1.2.0
5.執行:make >&make.log 這會花一段較長的時間,不同的硬體環境花的時間也就不同,可能從10分鍾到1個小時,甚至更多。
6.(可選)在工作站網路,或是一台單獨的工作站,編輯mpich/util/machines/machines.xxx(xxx是MPICH對你機器體系結構取的名稱,你能很容易的認出來)以反映你工作站的當地主機名。你完全可以跳過這一步。在集群中,這一步不需要。
7.(可選)編譯、運行一個簡單的測試程序:
cd examples/basic
make cpi
ln ;s ../../bin/mpirun mpirun
./mpirun ;np 4 cpi
此時,你就在你的系統上運行了一個MPI程序。
8.(可選)構建MPICH其餘的環境,為ch_p4策略使
用安全的服務會使得任何啟動速度加快,你可以執行以下命令構建:
make serv_p4
(serv_p4是一個較新的P4安全服務的版本,它包含在MPICH 1.2.0版中),nupshot程序是upshot程序的一個更快版本,但他需要tk 3.6版的源代碼。如果你有這個包,你就用以下命令可以構建它:
make nupshot
9.(可選)如果你想將MPICH安裝到一個公用的地方讓其它人使用它,你可以執行:
make install 或 bin/mpiinstall
你可以使用-prefix選項指定MPICH安裝目錄。安裝後將生成include、lib、bin、sbin、www和man目錄以及一個小小的示例目錄,
到此你可以通告所有的用戶如何編譯、執行一個MPI程序。
⑵ 企業級k8s集群部署
二進制包
註:推薦用二進制包部署Kubernetes集群,雖手動部署麻煩,但可以學習很多工作原理利於後期維護。
環境
可以使用VMware虛擬機,宿主機必須8G內存以上
• 伺服器可以訪問外網,有從網上拉取鏡像的需求
單Master伺服器規劃:( 註:部署時候根據具體環境進行IP地址調整即可 )
這里使用3台組建集群,可容忍1台機器故障,當然,你也可以使用5台組建集群
etcd1: 192.168.3.110 etcd2: 192.168.3.112 etcd3: 192.168.3.113
cfssl是一個開源的證書管理工具,使用json文件生成證書,相比openssl更方便使用。
找任意一台伺服器操作,這里用Master節點。
創建工作目錄:
自簽CA:
生成證書:
會生成ca.pem和ca-key.pem文件。
創建證書申請文件:
註:上述文件hosts欄位中IP為所有etcd節點的集群內部通信IP,一個都不能少!為了方便後期擴容可以多寫幾個預留的IP。
生成證書:
會生成etcd.pem和etcd-key.pem文件。
https://github.com/etcd-io/etcd/releases/download/v3.5.1/ etcd-v3.5.1-linux-amd64.tar.gz
以下在節點1上操作,然後將文件拷貝到其他集群機器
把剛才生成的證書拷貝到配置文件中的路徑:
注意修改節點2和節點3分別etcd.conf配置,按照下面提示的修改
啟動各節點的etcd服務
如果輸出上面信息,就說明集群部署成功。
如果有問題看日誌:/var/log/message
docker二進制下載地址:
https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz
註:使用yum安裝也行
集群所有機器都安裝docker
生成證書:
會生成ca.pem和ca-key.pem文件。
創建證書申請文件:
生成證書:
會生成k8s.pem和k8s-key.pem文件。
下載地址參考:
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#downloads-for-v12013
Wget https://dl.k8s.io/v1.20.13/kubernetes-server-linux-amd64.tar.gz
把剛才生成的證書拷貝到配置文件中的路徑:
TLS Bootstrapping 機制,對work-node加入進行自簽證書用
創建上述配置文件中token文件:
token 可以自行生產,網路下怎麼生產
kube-apiserver服務
生成kube-controller-manager證書:
生成kubeconfig文件(以下是shell命令,直接在終端執行):
生成kube-scheler證書:
生成kubeconfig文件:
生成kubeconfig文件:
通過kubectl工具查看當前集群組件狀態:
在所有worker node創建工作目錄:
從master節點拷貝:
註:由於網路插件還沒有部署,節點會沒有準備就緒 NotReady
二進制包下載地址:https://github.com/containernetworking/plugins/releases
確保kubelet啟用CNI:
在Master執行:
應用場景:例如kubectl logs
在Master節點將Worker Node涉及文件拷貝到新節點192.168.3.112/113
註:這幾個文件是證書申請審批後自動生成的,每個Node不同,必須刪除
Node2(192.168.3.113 )節點同上。記得修改主機名!
訪問地址:https://NodeIP:30001
創建service account並綁定默認cluster-admin管理員集群角色:
使用輸出的token登錄Dashboard。
CoreDNS用於集群內部Service名稱解析。
DNS解析測試:
這樣 單Master集群就搭建完成了
⑶ 如何在一台ESXi主機上搭建一整套VSAN集群的環境
就來介紹下如何在一台ESXi主機上配置3個ESXi並組建一個VSAN集群。昨天,我介紹了如何在一台ESXi主機上安裝ESXi的客戶機(當然這些ESXi本身也是主機哦,還可以在其上部署虛擬機,雖然性能會比較差)。因此,首先就是根據上面所說的硬體條件創建3個虛擬機用來安裝ESXi5.5u1。我的配置是每一台主機都包括:
4個CPU(最少2個)
8GB內存
3個硬碟,一個4GB(用來裝系統)、一個40GB(模擬成SSD)、一個400GB(提供給vsan存放數據)
2個網路適配器,一個在子網192.168.10.x用於管理和虛擬機網路,一個在子網192.168.20.x,用於VSAN VMkernel
虛擬機版本10
注意,為了讓ESXi客戶機有2個網路適配器,在ESXi主機(本例中起名為esxi01)上的網路配置至少要配置2個不同的埠組,我將這2個埠組分別配置在了2個不同的vSwitch上:
vSwitch0,默認vSwitch,配置有管理網路(VMKernel)和VM Network 10埠組
vSwitch2,新增的vSwitch,配置有VM Network 20埠組
此外,我還因為有iSCSI存儲,因此配置了2個iSCSI的VMKernel分別在vSwitch1和vSwitch2上。
vSwitch0和vSwitch2的配置截圖如下:
這里有一點要說明的是,如果僅為了vsan網路的通信,vSwitch2可以沒有上聯的物理適配器,我的截圖裡面配置了上聯的物理適配器是因為我還有一個iSCSI2的VMkernel需要使用。
安裝3台虛擬機的過程就不贅述了,只要你按照我昨天的文章來操作,就可以順利完成。安裝完之後,照例是配置靜態IP地址、FQDN主機名、禁用IPv6、DNS並開啟SSH和ESXi SHELL以備之後在控制台輸入命令行使用。
需要強調一次的是,在你的實驗網路中,需要配置好一台域控制器,它同時也是DNS伺服器,並事先在DNS伺服器裡面添加好靜態的ESXi主機的DNS項。在我的實驗環境中,它們是:
esxi55u01.home.lab – 192.168.10.31
esxi55u02.home.lab – 192.168.10.32
esxi55u03.home.lab – 192.168.10.33
請在黃色DCUI界面(安裝完ESXi主機的初次配置界面)裡面測試一下網路,如果主機域名也能順利解析,那就說明網路配置都完備了。DNS對於正確配置VMware集群來說非常重要。
接下去就是用vSphere Web客戶端再次連接到vCenter(我的是vCSA),把這幾台新安裝的ESXi主機添加進來,添加的時候要用FQDN,不能是IP地址。
現在讓我們來看一看這些ESXi主機的磁碟情況(左邊窗格點選主機,在右邊窗格分別選擇管理,存儲器和存儲設備,如圖所示),可以看見置備的3個磁碟都是非SSD。下面要克服的問題是怎樣欺騙ESXi,讓它以為其中一塊40GB的磁碟是SSD,這樣才能滿足VSAN配置的必要前提條件。
讓我們進入到這台vSphere ESXi主機的管理控制台界面,在命令行裡面輸入下面的2條命令,就可以完成:
# esxcli storage nmp satp rule add --satp VMW_SATP_LOCAL --device mpx.vmhba1:C0:T1:L0 --option=enable_ssd
# esxcli storage core claiming reclaim -d mpx.vmhba1:C0:T1:L0
注意,這里的設備ID要填寫你所想要變成SSD的那個磁碟,設備ID就是長的像mpx.vmhba1.C0:T1:L0的那個。
輸入命令後,如果沒有填錯,是不返回結果的。回到vSphere Web客戶端,刷新一下,你就會發現那個40GB的磁碟的類型變成SSD了。
關於VSAN的配置,LeoXiao同學寫的很不錯,就不多羅嗦了。你可以參考他的文章。
我借個圖說明下順序:
多說一句,為了測試NIOC功能,而這個功能只有在分布式交換機上才有,所以,建議VSAN集群配置的時候先配置好分布式交換機,並且把VSAN專用的VMkernel建在分布式交換機上。
最後,給大家看一下,要搭建一個VSAN集群的測試環境,在一台主機上至少要配置並開啟5台虛擬機——包括1台域控制器,1台vCenter和3台ESXi主機(每台都配了8GB內存哦)。
雖然還是有一些網路傳輸上不穩定的問題,不過vsan數據存儲好歹是建起來了。
⑷ 三台伺服器搭建高可用hadoop集群中datanode怎麼分配比較好
本文通過在vmware workstation上建立三台虛擬機來搭建hadoop集群環境,其中一台作為namenode,兩台作為datanode。 一、安裝vmware workstation(10.0.0)(一路下一步即可) 二、創建3個虛擬機 每個虛擬機安裝Ubuntu 桌面版
⑸ linux 的環境搭建(二)--redis單機環境、生產環境、集群環境的搭建
一、目錄
1、工具
2、安裝tcl
3、安裝單機版redis
4、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5、安裝redis cluster
二、工具
2.1、tcl8.6.1-src.tar.gz
2.2、ruby-2.3.1.tar.gz
2.3、redis-4.1.1.gem
2.4、redis-3.2.8.tar.gz
2.5、openssl-1.0.2r.tar.gz
三、安裝tcl(安裝redis必須先要安裝tcl)
3.1、把tcl8.6.1-src.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下
四、安裝單機版redis
4.1、把redis-3.2.8.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下
4.2、依次運行如下命令:
tar -zxvf redis-3.2.8.tar.gz 解壓文件
cd redis-3.2.8
make && make test && make install
五、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5.1、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_6379,6379是我們希望這個redis實例監聽的埠號
5.2、修改redis_6379腳本的第6行的REDISPORT,設置為相同的埠號(默認就是6379)
protected-mode no 取消保護模式,保護模式只能127.0.0.1訪問
daemonize yes 讓redis以daemon進程運行
pidfile /var/run/redis_6379.pid 設置redis的pid文件位置
bind 192.168.3.110
port 6379 設置redis的監聽埠號
dir /var/redis/6379 設置持久化文件的存儲位置
logfile /var/log/redis/6379.log 設置日誌文件位置
5.6、啟動redis,依次執行:
cd /etc/init.d,
chmod 777 redis_6379,賦讀寫執行的許可權(chmod -R 777 * 是遞歸把該目錄下的所有文件和其子文件全部賦許可權)
./redis_6379 start 啟動
5.7、確認redis進程是否啟動,ps -ef | grep redis
5.8、讓redis跟隨系統啟動自動啟動
5.9、重啟系統,不手動啟動redis,直接連接redis,可以連接上,表示配置成功
此時一個單機版的redis的生產環境已經搭建好了,每次伺服器重啟,redis都會自動的啟動
六、安裝redis cluster
(redis cluster集群,要求至少3個master,去組成一個高可用,健壯的分布式的集群,每個master都建議至少給一個slave,3個master,3個slave)
6.1、前提,我在其它機器上啟動了六個redis(安裝步驟都如下)
2.2、創建三個目錄:
mkdir -p /etc/redis-cluster 存放集群配置信息,自動生成配置
mkdir -p /var/log/redis redis日誌
mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件
6.3、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_7001,7001是我們希望這個redis實例監聽的埠號,並修改redis_7001配置文件中的REDISPORT=7001
6.4、修改/etc/redis/7001.conf中的部分配置為生產環境
6.5、完成了一個redis環境的配置,依次再配置其餘五個,分別為7002、7003、7004、7005、7006,每個啟動腳本內,都修改對應的埠號
6.6、啟動6個redis實例
6.7、創建集群(需要安裝ruby、rubygems)
上述命令在部分機器上是可以直接運行完成,成功安裝的,但在部分機器上運行第三條命令時會提示ruby版本太低、openssl找不到的問題,下面依次解決這兩個問題:
6.8、再次運行gem install redis命令,報出兩個錯誤
6.9、再次運行gem install redis命令,報出一個錯誤
6.10、再次運行gem install redis命令,報出一個錯誤
6.11、再次運行gem install redis命令
[root@ceshi01 local]# gem install redis
Successfully installed redis-4.1.1
Parsing documentation for redis-4.1.1
Done installing documentation for redis after 1 seconds
WARNING: Unable to pull data from ' https://rubygems.org/' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( https://api.rubygems.org/specs.4.8.gz )
1 gem installed
運行成功
此時Redis安裝好,此三個工具也安裝好了,這時我們來做一個Redis集群測試,在一台伺服器中創建了6個Redis實例,開啟6個Redis服務
redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
此時一個redis集群環境就已經搭建好了,可以通過redis-trib.rb check 192.168.3.105:7003命令查看集群幾點的信息
[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004
redis cluster的優點:讀寫分離+高可用+多master
讀寫分離:每個master都有一個slave
高可用:master宕機,slave自動被切換過去
多master:橫向擴容支持更大數據量