一、集群架構介紹
集群就是指一組(若干個)相互獨立的計算機,利用高速通信網絡組成的一個較大的計算機服務系統,每個集群節點都是運行各自服務的獨立服務器。這些服務器之間可以彼此通信,協同向用戶提供應用程序、系統資源和數據,並以單一系統的模式加以管理。
集群架構的特點:
1. 高並發,大流量:面對高並發用戶大量訪問
2. 持續服務,高可用:系統7*24小時不間斷服務
3. 海量數據:需要存儲、管理海量數據,需要使用大量服務器
4. 用戶分布廣泛,網絡情況復雜
二、集群架構組成說明
1. 基本架構組成:(用於讓用戶進行訪問)
前端服務部分:
1)網站用戶
是一個訪問者,請求訪問網站頁面
2)防火牆設備
對訪問架構用戶進行策略控制,正常訪問網站用戶,可以放行進入;非法人員(黑客)訪問網站,禁止進入
3)交換機(外網)
提供架構中服務器相互通訊交流的需求(提供外部人員訪問)
4)負載均衡服務器
對用戶的訪問請求進行調度處理
5)網站web服務器
對用戶的請求進行響應處理
后端服務部分:
1)交互機(內網)
提供架構中服務器相互通訊交流的需求(提供內部局域網服務器通訊交流)
2)數據庫服務器
主要用於存儲用戶提交文字(字符串)數據信息
3)存儲服務器
主要用於存儲用戶上傳視頻 音頻 圖片 附件等數據資料
4)備份服務器
主要用於對用戶存儲(上傳)數據信息進行統一備份管理
5)緩存服務器
主要用於存儲用戶經常訪問的數據信息,提升請求數據信息的響應效率
2. 擴展架構組成:(用於讓運維人員遠程管理架構中的服務器)
1)運維人員
可以遠程管理架構中服務器
2)審計-跳板機服務器
用於監管內部運維人員操作記錄信息,一旦出現架構問題,可以快速定位問題原因,進行相應人員失誤問責
3)批量管理服務器
通過批量管理服務器可以批量管理架構中多台服務器,提升工作效率
4)監控服務器
用於監控管理架構中的服務器運行情況,一旦出現問題進行發送告警給相關運維管理人員
三、集群架構搭建規划
服務器及服務規划說明
主機地址及主機名規划
安裝及配置路徑等規划
1. 基礎企業集群架構規划,各個服務器架構功能規划如下:
2. 網站集群搭建順序規划
3.主機IP及主機名規划
一般企業對主機IP的規划為10網段
4.安裝及配置路徑等規划
5.集群架構系統基礎環境准備
1)安裝CentOS 7.6 64bit操作系統,修改網卡為eth0和eth1命名模式,並添加2塊網卡
2)第一塊網卡eth0配置為NAT模式【模擬公網環境】,網段為10.0.0.0網段(企業一般規划為10網段)
3)第二塊網卡eth1配置為LAN區段模式【模擬局域網環境】,網段為172.16.1.0網段
虛擬軟件主機虛擬網絡配置
第一步:在虛擬軟件中配置虛擬局域網
配置虛擬網段信息,以及虛擬網關信息
第二步:在虛擬軟件中虛擬機添加網卡
虛擬主機中設置了兩塊網卡:
eth0:nat模式網卡
eth1:LAN區段網卡(區段名稱為 172.16.1.0/24)注:此網段為內網網段,無需配置默認網關和DNS
第三步:在虛擬軟件中虛擬機網卡配置
使用命令nmtui命令設置網卡
四、集群架構系統優化
1. 基礎優化
1)規范功能目錄
創建存儲軟件目錄(/server/tools),創建存儲腳本目錄(/server/scripts)
mkdir -p /server/tools
mkdir -p /server/scripts
2) 配置hosts解析信息
設置本地服務主機名稱與ip地址映射關系
cp /etc/hosts{,.bak}
cat >>/etc/hosts<<EOF
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.9 web03
172.16.1.51 db01
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.61 m01
EOF
3)修改主機名稱
hostnamectl set-hostname backup
4)更新yum源信息
使用yum源地址
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安裝RHEL/CentOS官方源不提供的軟件包
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
yum repolist
5)優化安全設置
對於內網環境,部分安全方面的設置是必需的,可以進行關閉,避免不必要的安全策略影響系統服務的正常運行。
關閉selinux
getenforce (查看狀態)
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0 (臨時關閉)
getenforce (查看狀態)
關閉firewalld防火牆
systemctl status firewalld (查看狀態)
systemctl stop firewalld (關閉防火牆)
systemctl status firewalld
注:通知系統防火牆功能,只是針對局域網內部的機器關閉,連接外網服務設備還需開啟
6)精簡開機啟動程序
設置一些不必要的軟件為不隨系統開機自動運行,只將一些必須運行的服務程序,設置為開機自動啟動
systemctl list-unit-files |grep enable|egrep -v "sshd.service|crond.service|NetworkManager.service|irqbalance.service|rsyslog.service"|awk '{print "systemctl disable", $1}' |bash
systemctl list-unit-files |grep enable
企業生產最小化原則:
安裝軟件包最小化;用戶權限最小化;目錄文件權限最小化;自啟動服務最小化;服務運行用戶最小化
7)設置普通用戶提權操作(可選優化)
useradd test
echo 123456|passwd --stdin test
cp /etc/sudoers /etc/sudoers.ori
echo "test ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c
8)設置系統字符集(可選優化)
cat /etc/locale.conf
cp /etc/locale.conf{,.ori}
localectl set-locale LANG="zh_CN.UTF-8"
9)時間同步設置
在服務架構中,有時需要進行主備連接,或者服務端和客戶端的鏈接,連接可能涉及數據信息的同步,而同步時就需要借用系統時間生成時間戳,判斷周期性同步的間隔,如果同步服務器之間的時間不統一,可能會造成同步終端間數據同步異常。
設置定時任務,進行每5分鍾進行時間同步一次
yum install ntpdate -y
echo "#crond-id-0001:time sync by test" >> /var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1' >>/var/spool/cron/root
crontab -l
10)提升命令行操作安全性(可選優化)
設置會話超時時間
設置命令行歷史記錄保留的行數
設置命令行歷史記錄格式
設置歷史記錄文件保留個數
echo "export TMOUT=300" >>/etc/profile
echo "export HISTSIZE=1000" >>/etc/profile
echo "export HISTFILESIZE=1000" >>/etc/profile
echo 'export HISTTIMEFORMAT="`whoami` %F %T"' >>/etc/profile
tail -5 /etc/profile
source /etc/profile
11)加大文件描述符(句柄數)
ulimit -SHn 65535 (臨時加大文件描述符)
永久生效:echo '* - nofile 65535 ' >> /etc/security/limits.conf
tail -1 /etc/security/limits.conf
12)優化系統內核參數
內核參數一般配置在/etc/sysctl.conf內核文件中,利用sysctl -p命令使之內核文件中,修改的內容生效。
13)安裝系統常用軟件
CentOS 7安裝的企業運維常用基礎工具包如下:
yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs psmisc net-tools bash-completion vim-enhanced
14)優化SSH遠程連接效率
配置遠程連接SSH配置文件,使之連接效率更高,連接更安全
sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
systemctl restart sshd
15)鎖定關鍵系統文件優化
對關鍵系統賬號文件和啟動文件進行鎖定,防止用戶篡改。
16)清理系統版本信息
說明:系統對外顯示的信息越少越好
17)為GRUB增加密碼
為了防止別人進入單用戶模式破解密碼,可以添加GRUB密碼
grub2-setpassword
cat /boot/grub2/user.cfg
18)禁止用戶ping服務器的ip地址
禁止用戶ping服務器IP地址的目的也是讓黑客用戶以為服務器停機或者不可用,或禁止返回有效信息
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
2. 擴展優化(可選)
1)優化系統提示符(可根據個人喜好選擇)
2)定義系統別名
簡化常用的命令,提升工作效率
3)修改yum.conf文件配置信息
將yum.conf中的keepcache=0改為keepcache=1,為日后一鍵安裝網站集群留好rpm及依賴工具包
4)自動快速配置主機名和IP地址
五、虛擬主機克隆操作
已經創建好了一台虛擬主機,可以利用創建好的虛擬主機,作為模板主機,進行架構中多台服務器的克隆創建。
第一步:調整虛擬主機網絡配置信息
一清空 兩刪除
兩刪除:刪除網卡(eth0 eth1)中,UUID(硬件標識信息)和HWADDR(網絡mac地址)進行刪除
sed -ri '/UUID|HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]
一清空:清空網絡規則配置文件
ls /etc/udev/rules.d
echo '>/etc/udev/rules.d/70-persistent-net.rules' >>/etc/rc.local (針對的CentOS 6)
第二步:關閉虛擬模板機
shutdown -h now
第三步:進行模板機的克隆操作
鏈接克隆:
優勢:節省系統資源 克隆效率較高
劣勢:模板主機不能出現問題,一旦模板主機失效,所有克隆主機也無法正常工作
完整克隆:
優勢:模板主機和克隆主機相互獨立,模板主機出現問題,克隆主機依舊可以正常使用
劣勢:浪費系統資源 克隆效率較低
第四步:開啟克隆后虛擬主機(一台一台開啟,確認模板主機關閉),設置虛擬主機地址和網卡
# 修改主機名稱
hostname backup
hostnamectl set-hostname backup
說明:主機名稱需要填寫為當前系統主機名,然后進行一下替換即可
# 修改主機IP地址信息
sed -i 's/200/41/g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
cat /etc/sysconfig/network-scripts/ifcfg-eth[01]
# 重啟網絡服務,重新連接虛擬主機
systemctl restart NetworkManager