00. 介紹部分1)實現實時同步數據的原理
2)實時實時同步數據的方法
a 部署好rsync守護進程服務
b 部署好inotify監(jiān)控服務
c 部署好sersync實時同步服務
3)實現實時同步數據的驗證
01. 知識回顧1)NFS存儲服務概念介紹 a 實現數據的共享存儲
b 降低公司磁盤購買成本
2)NFS存儲服務工作原理 a 部署好一臺存儲服務器,設置好存儲目錄
b 客戶端利用網絡掛載的方式進行掛載存儲目錄
c 將數據存儲在客戶端本地掛載點目錄==存儲到存儲服務器中
3)NFS服務部署流程 RPC:類似于租房的中介 NFS服務啟動會有多個進程多個端口(隨機端口),客戶端不方便連接服務端
服務端部署 第一步:安裝存儲服務軟件 nfs-utils rpcbind
第二步:編寫配置文件
第三步:創(chuàng)建存儲目錄,并修改屬主權限
第四步:啟動服務/開機自動
rpcbind
nfs
客戶端部署: 第一步:安裝nfs服務軟件
第二步:實現網絡存儲服務掛載
mount -t nfs 172.16.1.31:/data 掛載點目錄
NFS服務掛載不上排查方法: 服務端進行排查:
1. 檢查nfs進程信息是否注冊
rpcinfo -p localhost/172.16.1.31
問題原因:
服務啟動順序不對,沒有啟動nfs服務
2. 檢查有沒有可用存儲目錄
showmount -e 172.16.1.31
問題原因:
配置文件編寫有問題,重啟nfs服務
3. 在服務端進行掛載測試
是否能夠在存儲目錄中創(chuàng)建或刪除數據
客戶端測試: 1. 檢查nfs進程信息是否注冊
rpcinfo -p localhost/172.16.1.31
問題原因:
服務啟動順序不對,沒有啟動nfs服務
2. 檢查有沒有可用存儲目錄
showmount -e 172.16.1.31
問題原因:
配置文件編寫有問題,重啟nfs服務
網絡問題
ping 172.16.1.31
telnet 172.16.1.31 111
4)NFS服務端配置參數 xxx_squash
5) NFS客戶端配置說明 mount -t
實現開機自動掛載
/etc/rc.local 文件要有執(zhí)行權限
/etc/fstab 實現fstab文件掛載自動加載nfs存儲目錄 必須讓remote-fs.target服務開機自啟
centos7 必須啟動 remote-fs.target
centos6 必須啟動 netfs
需求問題:如何找到一臺服務器開機運行了哪些服務
ll /etc/systemd/system/multi-user.target.wants/
客戶端掛載的命令參數
02. 實時同步服務原理/概念1)需要部署好rsync守護進程服務,實現數據傳輸
2)需要部署好inotify服務,實現目錄中數據變化監(jiān)控
3)將rsync服務和inotify服務建立聯系,將變化的數據進行實時備份傳輸
03. 實時同步服務部署1)部署rsync守護進程 服務端配置操作
客戶端配置操作
2)部署inotify監(jiān)控服務第一個步驟:安裝軟件 yum install -y inotify-tools
第二個步驟:熟悉命令的使用 /usr/bin/inotifywait --- 監(jiān)控目錄數據信息變化
/usr/bin/inotifywatch --- 對監(jiān)控的變化信息進行統(tǒng)計
/data/ oldboy01.txt
oldboy02.txt --- rsync --exclude
oldboy03.txt
inotifywait命令使用方法:
inotifywait [參數] 監(jiān)控的目錄
-m|--monitor --- 實現一直監(jiān)控目錄的數據變化
-r|--recursive --- 進行遞歸監(jiān)控
-q|--quiet --- 盡量減少信息的輸出
--format <fmt> --- 指定輸出信息的格式
--timefmt --- 指定輸出的時間信息格式
-e|--event --- 指定監(jiān)控的事件信息
創(chuàng)建文件監(jiān)控信息輸出 /data/ CREATE user13 --- 一個文件被創(chuàng)建
/data/ OPEN user13 --- 打開創(chuàng)建的文件
/data/ ATTRIB user13 --- 修改文件的屬性信息
/data/ CLOSE_WRITE,CLOSE user13 --- 保存關閉一個文件
刪除文件監(jiān)控信息輸出 /data/ DELETE user13
修改文件監(jiān)控信息輸出 /data/ CREATE user10
/data/ OPEN user10
/data/ MODIFY user10
/data/ CLOSE_WRITE,CLOSE user10
sed命令修改文件原理 /data/ OPEN user10 --- 打開文件
/data/ CREATE sedpSAFR7 --- 創(chuàng)建出一個臨時文件(內存)
/data/ OPEN sedpSAFR7 --- 臨時文件進行打開
/data/ ACCESS user10 --- 讀取源文件內容
/data/ MODIFY sedpSAFR7 --- 修改臨時文件
/data/ ATTRIB sedpSAFR7 --- 臨時文件屬性變化
/data/ CLOSE_NOWRITE,CLOSE user10 --- 不編輯直接關閉源文件
/data/ CLOSE_WRITE,CLOSE sedpSAFR7 --- 寫入關閉臨時文件
/data/ MOVED_FROM sedpSAFR7 --- 將臨時文件移除
/data/ MOVED_TO user10 --- 移入一個新的user10源文件
inotify監(jiān)控命令格式:
inotifywait -mrq --timefmt "%F %T" --format "%T %w %f 事件信息:%e" /data -e CREATE
create創(chuàng)建、delete刪除、moved_to移入、close_write修改
企業(yè)應用:防止系統(tǒng)重要文件被破壞 需要用到inotify進行實時一直監(jiān)控 /etc passwd /var/spool/cron/root
3)部署sersync同步服務第一個里程:需要下載,保留上傳到linux服務器中 https://github.com/wsgzao/sersync
上傳linux服務器
rz -y --- 選擇需要上傳的數據信息
PS:軟件盡量都統(tǒng)一保存在/server/tools目錄中
sersync安裝包https://pan.baidu.com/s/1xQycgy9W-Rya2bLnFb-4FQ
第二個里程:解壓軟件壓縮包,將解壓的數據進行保存 unzip sersync_installdir_64bit.zip
[root@nfs01 tools]# tree sersync_installdir_64bit
sersync_installdir_64bit
└── sersync
├── bin --- sersync軟件命令目錄
│?? └── sersync
├── conf --- sersync軟件配置目錄
│?? └── confxml.xml
└── logs --- sersync軟件日志目錄
[root@nfs01 tools]# mv sersync_installdir_64bit/sersync/ /usr/local/
第三個里程:編寫配置文件: vim conf/confxml.xml
6 <filter start="false">
7 <exclude expression="(.*)\.svn"></exclude>
8 <exclude expression="(.*)\.gz"></exclude>
9 <exclude expression="^info/*"></exclude>
10 <exclude expression="^static/*"></exclude>
11 </filter>
說明:排除指定數據信息不要進行實時傳輸同步 12 <inotify>
13 <delete start="true"/>
14 <createFolder start="true"/>
15 <createFile start="false"/>
16 <closeWrite start="true"/>
17 <moveFrom start="true"/>
18 <moveTo start="true"/>
19 <attrib start="false"/>
20 <modify start="false"/>
21 </inotify>
說明:定義inotify程序需要監(jiān)控的事件 24 <localpath watch="/data"> --客戶端需要監(jiān)控的目錄
25 <remote ip="172.16.1.41" name="backup"/> --服務端ip機模塊名稱
26 <!--<remote ip="192.168.8.39" name="tongbu"/>-->
27 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28 </localpath>
29 <rsync>
30 <commonParams params="-artuz"/> --參數:-avz
31 <auth start="ture" users="rsync" passwordfile="/etc/rsync.password"/>
32 <userDefinedPort start="ture" port="874"/><!-- port=874 默認port=873-->
第四個里程:啟動sersync服務程序 [root@nfs01 bin]# export PATH="$PATH:/usr/local/sersync/bin"
[root@nfs01 bin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sersync/bin
sersync -h
參數-d: 啟用守護進程模式
參數-r: 在監(jiān)控前,將監(jiān)控目錄與遠程主機用rsync命令推送一遍
進行同步測試
參數-o: 指定配置文件,默認使用confxml.xml文件
-o /usr/local/sersync/conf/confxml.xml
-o /usr/local/sersync/conf/confxml02.xml
sersync -dro /usr/local/sersync/conf/confxml.xml 啟動實時同步服務
killall sersync 停止實時同步服務
echo "sersync -dro /usr/local/sersync/conf/confxml.xml">>/etc/rc.local 開機自動啟動
注意:sersync命令沒有停止進程的命令,需要直接殺進程
yum provides killall --查出killall命令所屬的包名為psmisc
yum install -y psmisc
04. 實時同步服務概念總結1) 實現實時同步的原理
監(jiān)控目錄數據變化 --- inotify
將數據進行傳輸 --- rsync
將監(jiān)控和傳輸進行整合 --- sersync
2) 實現實時同步部署方法
1. 部署rsync守護進程
2. 部署inotify軟件
3. 部署sersync軟件
作業(yè): 擴展實時同步軟件 數據庫需要實時同步 windows --- windows 批量管理服務ansible 安裝過程 簡單配置 應用(模塊 劇本) 來源:https://www./content-3-645801.html
|