如果沒有運維人員或運維軟體,但是又面臨在一個集群中每台機器都執行一個命令時,總不能真的登錄每一台吧。那這里就起一個簡單的命令分發執行腳本。
0、確保腳本所在的機器能夠免密登錄到集群其他機器
SSH免密登錄配置
1、將集群的IP都寫入一個文件中
2、編寫命令分發腳本
如果機器數量少,可以替換第三行語句為
如果機器IP配置的映射名有規律,也可以替換第三行語句為
同時後面的 $i 替換為 hadoop$i
3、測試
『貳』 如何對區域網內的多台Linux進行集群化管理
它非常適合用來快速配置一個集群中的所有運行相同服務和具備相同配置的計算機節點。現在有大量的開源管理工具,都可以實現這樣的管理,比如dsh、SUSE Manager等。下面是用ClusterSSH管理多台Linux伺服器的具體過程。
如果你是一名Linux系統管理員,那你每天一定會和許許多多的機器打交道,因為你要定期監測和維護這些機器,如一批Web伺服器,如果你要同時在多台機器上敲入相同的命令,你可能會通過SSH登錄,然後逐台敲入,如果使用ClusterSSH,可以為你節省不少類似的工作時間。
ClusterSSH是用Tk/Perl包裝XTerm和SSH後形成的新工具,就其本身而言,它可以運行在任何兼容POSIX的操作系統上,我曾經在Linux,Solaris和Mac OS X上運行過它,它需要Perl庫Tk(在Debian或Ubuntu上就是perl-tk)和X11::Protocol(在Debian或Ubuntu上就是libx11-protocol-perl),此外,xterm和OpenSSH是必不可少的。
安裝在Debian或Ubuntu上安裝ClusterSSH是相當簡單的,只需要敲入sudo apt-get install clusterssh就可以安裝好,至於依賴包你也不必擔心,一切都會為你裝好的,它也提供了適合Fedora的rpm包,在FreeBSD上可通過port系統安裝,還為Mac OS X准備了MacPort版本,因此你可以在你的蘋果電腦上安裝ClusterSSH,當然,如果你是極客,也可以下載源代碼自己編譯。
配置可以通過ClusterSSH的全局配置文件/etc/clusters,或用戶home目錄下的。csshrc文件來配置它,我喜歡用戶級的配置方式,這樣同一個系統中的不同用戶可以根據自己的喜好進行配置,ClusterSSH定義了一個「cluster」機器組,你可以通過一個界面來控制這個組中的所有機器,在配置文件的頂端「clusters」部分,你可以詳盡地列出你的集群,然後用獨立的段落來描述每個集群。
例如,假設我有兩個集群,每個集群由兩台機器組成,「Cluster1」由「Test1」和「Test2」兩台機器組成,「Cluster2」由「Test3」和「Test4」兩台機器組成,~.csshrc(或/etc/clusters)配置文件的內容看起來應該是:
clusters = cluster1 cluster2
cluster1 = test1 test2
cluster2 = test3 test4你也可以創建中間集群(包含其它集群的集群),如果你想創建一個名叫「all」的集群包含所有的機器,有兩種實現手段,首先,你可以創建一個包含所有機器的集群,如:
clusters = cluster1 cluster2 all
cluster1 = test1 test2
cluster2 = test3 test4
all = test1 test2 test3 test4但我更喜歡的方法是使用一個包含其它集群的中間集群:
clusters = cluster1 cluster2 allcluster1 = test1 test2
『叄』 幾個常用的linux性能監控命令
1. sar
每兩秒刷新一次, 總共5次
[root@dbhost01 ~]# sar 2 5
Linux 2.6.32-504.el6.x86_64 (dbhost01) 03/30/2018 _x86_64_ (4 CPU)
02:53:15 PM CPU %user %nice %system %iowait %steal %idle
02:53:17 PM all 0.66 0.00 1.72 0.66 0.00 96.96
02:53:19 PM all 1.34 0.00 3.35 0.80 0.00 94.51
02:53:21 PM all 0.79 0.00 1.59 1.45 0.00 96.17
02:53:23 PM all 0.40 0.00 2.00 0.80 0.00 96.80
02:53:25 PM all 0.66 0.00 1.85 0.79 0.00 96.70
Average: all 0.77 0.00 2.10 0.90 0.00 96.23
2. top
top -a 按照內存降序
[root@dbhost01 ~]# top -a
top - 15:00:54 up 6:04, 1 user, load average: 0.31, 0.19, 0.11
Tasks: 306 total, 1 running, 305 sleeping, 0 stopped, 0 zombie
Cpu(s): 7.8%us, 2.4%sy, 0.0%ni, 88.9%id, 0.8%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 4048972k total, 3848576k used, 200396k free, 134844k buffers
Swap: 4194300k total, 1788k used, 4192512k free, 1835360k cached
3. vmstat
vmstat用於顯示虛擬內存,內核線程,磁碟,系統進程, CPU活動等統計信息。
需要安裝sysstat工具。
[root@dbhost01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 1788 202508 135064 1835920 0 0 32 26 96 276 1 2 95 1 0
[root@dbhost01 ~]#
[root@dbhost01 ~]# vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 1788 202336 135068 1836000 0 0 32 26 97 276 1 2 95 1 0
0 0 1788 202624 135068 1836000 0 0 25 29 4012 6682 0 1 98 1 0
0 0 1788 202624 135072 1836004 0 0 57 87 4003 6685 0 1 98 1 0
1 0 1788 202508 135072 1836004 0 0 57 33 4402 7353 1 1 98 0 0
0 0 1788 202540 135076 1836004 0 0 33 47 4002 6674 0 1 98 1 0
4. lsof(list open files)
[root@dbhost01 ~]# lsof | grep 1521
certmonge 2348 root 16r FIFO 0,8 0t0 15212 pipe
certmonge 2348 root 18r FIFO 0,8 0t0 15218 pipe
gipcd.bin 2754 grid 109u unix 0xffff880139152180 0t0 36936 socket
5. tcpmp
tcpmp -i eth1
15:24:28.777779 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.777809 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.778976 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779011 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779013 IP 192.168.2.82.50990 > dbhost01.ssh: Flags [.], ack 393968, win 16652, options [nop,nop,TS val 2443327 ecr 22996360], length 0
15:24:28.779481 IP dbhost02-priv.23602 > dbhost01-priv.24271: UDP, length 556
15:24:28.779585 IP dbhost01-priv.24271 > dbhost02-priv.23602: UDP, length 80
15:24:28.779909 IP dbhost01-priv.24271 > dbhost02-priv.23602: UDP, length 80
15:24:28.780584 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780590 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780820 IP dbhost01-priv.24271 > dbhost02-priv.23602: UDP, length 556
15:24:28.782232 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
15:24:28.782235 IP dbhost01.ssh > 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
6.netstat
[root@dbhost01 ~]# netstat -a | grep oracle
unix 2 [ ACC ] STREAM LISTENING 31861 /var/tmp/.oracle/ora_gipc_sdbhost01gridmyracdb-clusterCRFM_SIPC
unix 2 [ ACC ] STREAM LISTENING 33820 /var/tmp/.oracle/sdbhost01DBG_LOGD
unix 2 [ ACC ] STREAM LISTENING 41177 /var/tmp/.oracle/sdbhost01DBG_EVMD
unix 2 [ ACC ] STREAM LISTENING 65106 /var/tmp/.oracle/sAevm
unix 2 [ ACC ] STREAM LISTENING 65108 /var/tmp/.oracle/sSYSTEM.evm.acceptor.auth
7. htop
需要安裝
8. iostat
Total DISK READ: 91.48 K/s | Total DISK WRITE: 45.27 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
4071 be/4 oracle 30.18 K/s 0.00 B/s 0.00 % 4.69 % ora_lmon_orcl1
4117 be/4 oracle 60.36 K/s 15.09 K/s 0.00 % 3.69 % ora_ckpt_orcl1
2989 rt/4 grid 965.71 B/s 0.00 B/s 0.00 % 2.13 % ocssd.bin
4099 be/4 oracle 0.00 B/s 30.18 K/s 0.00 % 0.07 % ora_ckpt_test
2987 rt/4 grid 0.00 B/s 482.86 B/s 0.00 % 0.03 % ocssd.bin
2979 rt/3 root 0.00 B/s 3.77 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
2980 rt/3 root 0.00 B/s 15.09 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
9. iftop(流量監控工具)
『肆』 什麼是Linux集群
集群通信系統是一種計算機系統, 它通過一組鬆散集成的計算機軟體和/或硬體連接起來高度緊密地協作完成計算工作。簡單地說,集群(cluster)就是一組計算機,它們作為一個整體向用戶提供一組網路資源。這些單個的計算機系統就是集群的節點(node)。一個理想的集群,用戶是不會意識到集群系統底層的節點的。在他們看來,集群是一個系統,而非多個計算機系統。並且集群系統的管理員可以隨意增加和刪改集群系統的節點。
集群已不是一個全新的概念,早在七十年代計算機廠商和研究機構就對集群系統進行了研究和開發。這些系統不為大家熟知,是因為它主要用於科學工程計算。直到Linux集群的出現,集群的概念才得以廣泛傳播。集群系統主要分為高可用(High Availability)集群,簡稱HA集群,和高性能計算(High Perfermance Computing)集群,簡稱HPC集群。