練習一:
配置第一臺主機:服務端共享目錄:
[root@localhost /]# yum install nfs-utils [root@localhost /]# systemctl start rpcbind [root@localhost /]# systemctl start nfs [root@localhost /]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 64 *:2049 *:*
[root@localhost ~]# cat /etc/exports /mysql/data 10.1.252.28/16(rw,sync) [root@localhost /]# exportfs -ar
然后更改共享目錄的權限:此部分為測試,在測試部分。
配置第二臺主機:
掛載共享:
[root@localhost mnt]# showmount -e 10.1.49.11 Export list for 10.1.49.11: /mysql/data 10.1.252.28/16 [root@localhost mnt]# mount -t nfs 10.1.49.11:/mysql/data /mydata
安裝mysql
[root@localhost ~]yum install mysql [root@localhost ~]yum install mysql-devel mysql-server [root@localhost ~]# service mysqld start [root@localhost ~]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 50 *:3306 *:* [root@localhost ~]# mysql_secure_installation [root@localhost ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
更改mysql的數據庫數據路徑:
[root@localhost ~]# vim /etc/my.cnf
配置第三臺主機:
掛載共享,同上臺主機:
[root@localhost ~]# iptables -F [root@localhost ~]# setenforce 0 [root@localhost ~]# mount -t nfs 10.1.49.11:/mysql/data /mydata
測試及結論:
對共享目錄設置不同權限:
(1)此處使用777權限先測試;
[root@localhost /]# chmod 777 -R /mysql
結果:能在目錄下創建文件,能正常啟動mysql并使用,但是提示無法修改權限:
[root@localhost testdir]# service mysqld start chown: 正在更改"/testdir/data" 的所有者: 不允許的操作 chmod: 更改"/testdir/data" 的權限: 不允許的操作 正在啟動 mysqld: [確定]
兩臺主機不能同時啟用,設置acl權限的效果也是如此。
(2)測試共享的目錄不壓縮root權限并且其它人有7的權限,因為掛載之后mysql是以其它人的方式訪問:
[root@localhost /]# cat /etc/exports /mysql/data 10.1.252.28/16(rw,no_root_squash,sync)
結果:單臺主機可以正常使用,并且目錄及文件的屬組屬主都重新初始化為了mysql主和mysql組。兩臺主機不能同時啟動。
(3)測試mysql都為同ID,rpm安裝的mysql默認id都為27:
[root@localhost ~]# service mysqld stop Stopping mysqld: [ OK ] [root@localhost ~]# umount /mydata/ [root@localhost /]# cat /etc/exports /mysql/data 10.1.252.28/16(rw,sync) [root@localhost /]# chmod 755 /mysql/data/ -R [root@localhost /]# chown mysql:mysql /mysql -R [root@localhost /]# ll /mysql/ 總用量 4 drwxr-xr-x. 5 mysql mysql 4096 10月 18 19:19 data [root@localhost /]# exportfs -ar
重啟服務:
[root@localhost mydata]# !servi service mysqld restart Stopping mysqld: [ OK ] chown: changing ownership of `/mydata': Operation not permitted chmod: changing permissions of `/mydata': Operation not permitted Starting mysqld: [ OK ]
會報錯提示不允許更改權限,但是能夠正常使用。說明需要root權限更改目錄屬主屬組和和權限,因為默認目錄就是755的并且屬組主都為mysql。
最好的方法就是壓縮root權限并更改相同ID的mysql,因為mysql在使用數據文件時會加鎖,因此不能兩個mysql操作同一個目錄的數據。如今為了實現冗余性,會利用軟件的方式,將兩個mysql結合在一個數據庫數據路徑上,當一臺主機故障,立即啟用另一臺。
注意:遇到的問題:yum安裝的mysql是沒有my.cnf的配置文件的,系統安裝時會自帶,若沒有配置文件,可以復制默認使用的配置文件my-medium.cnf到/etc/my.cnf來使用。
練習二:
服務端:配置環境:
[root@localhost test]# yum install samba [root@localhost test]# service nmb start Starting NMB services: [ OK ] [root@localhost test]# service smb start Starting SMB services: [ OK ] [root@localhost mydata]# useradd centos [root@localhost mydata]# passwd centos [root@localhost mydata]# useradd gentoo [root@localhost mydata]# passwd gentoo
設置文件權限:
[root@localhost ftp]# setfacl -m u:gentoo:rwx pub [root@localhost ftp]# setfacl -m u:centos:rwx pub
添加用戶:
[root@localhost ftp]# smbpasswd -a centos New SMB password: Retype new SMB password: Added user centos. [root@localhost ftp]# smbpasswd -a gentoo New SMB password: Retype new SMB password: Added user gentoo.
客戶端
使用可寫的用戶centos登錄:
[centos@localhost pub]$ smbclient //10.1.252.28/pub -U centos Enter centos's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6] smb: \> put issue putting file issue as \issue (1.0 kb/s) (average 1.0 kb/s) smb: \> ls . D 0 Sun Sep 11 21:00:51 2016 .. D 0 Sun Sep 11 20:50:16 2016 issue A 47 Sun Sep 11 21:00:51 2016 fstab 946 Sun Sep 11 20:57:24 2016 40317 blocks of size 524288. 37594 blocks available smb: \> rm fstab smb: \> ls . D 0 Sun Sep 11 21:01:13 2016 .. D 0 Sun Sep 11 20:50:16 2016 issue A 47 Sun Sep 11 21:00:51 2016 40317 blocks of size 524288. 37594 blocks available
使用其他用戶登錄:
[centos@localhost pub]$ smbclient //10.1.252.28/pub -U ge Enter ge's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6] smb: \> ls . D 0 Sun Sep 11 21:09:22 2016 .. D 0 Sun Sep 11 20:50:16 2016 fstab A 946 Sun Sep 11 21:09:16 2016 40317 blocks of size 524288. 37594 blocks available smb: \> rm fstab NT_STATUS_ACCESS_DENIED deleting remote file \fstab NT_STATUS_ACCESS_DENIED listing \fstab
確實不可寫。使用用戶查看共享目錄列表時也不顯示pub目錄:
[centos@localhost pub]$ smbclient -L //10.1.252.28 -U ge Enter ge's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6] Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6) ge Disk Home Directories
注意:遇到的問題二:samba服務中:直接在操作文件系統的掛載目錄而不使用客戶端時,用除了root的其它用戶都不能寫。設置了acl權限時,即使是相同id,也無法在文件系統進行寫操作;但是服務端給予的權限的用戶和客戶端用戶相同ID的情況下,更改服務端的文件的屬主屬組時,如下:
[root@localhost ftp]# chown root:centos pub [root@localhost ftp]# ll total 4 drwxrwxr-x+ 2 root centos 4096 Sep 11 21:26 pub
此時在客戶端掛載,就可以實現寫操作,證明是基于ID映射權限,而且acl的權限并不進行ID映射:
[ge@localhost ~]$ cd /mnt/pub/ [ge@localhost pub]$ ls fstab [ge@localhost pub]$ rm fstab
練習3:
共享端:配置環境:
[root@localhost ftp]mkdir -pv /data/app/web [root@localhost ftp]# mv wordpress/* -f /data/app/web/
注意:遇到的問題三:更改屬主屬組,并將其父目錄也更改為apache,因為wordpress需要自動新建配置文件(Discuz也需要權限來寫入文件,但是不需要父目錄的寫權限,因為其并不新建文件,只修改文件):
[root@localhost web]# chown apache:apache ./* -R [root@localhost app]# chown apache:apache web
將目錄共享:
[root@localhost web]# cat /etc/exports /data/app/web 10.1.49.10/16(rw,sync) /data/app/web 10.1.49.11/16(rw,sync) [root@localhost web]# exportfs -ar [root@localhost web]# service rpcbind start [root@localhost web]# service nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ]
在三臺主機的任一主機上安裝數據庫:
然后新建數據庫并且授權用戶,使此用戶可以通過任何主機(%通配)訪問數據庫的任何庫和表(不建議全部授權,要授權指定的庫):
MariaDB [(none)]> GRANT ALL ON *.* TO 'wordpress'@'%' IDENTIFIED BY 'magedu';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> FLUSH PRIVILEGES;
測試連接數據庫:可以在另一臺主機上使用mysql -uwordpress -h10.1.49.11 -pmagedu。使用-h指明要登錄的主機ip。
主機1:
掛載目錄:
[root@localhost html]# mount -t nfs 10.1.252.28:/data/app/web /var/www/html
安裝網站:在此步驟前,數據庫自己先建立好,用戶名密碼使用授權的用戶進行登錄,數據庫的主機填寫數據庫所在的主機IP,
因為wordpress速度太慢,改為Discuz,步驟基本相同;
安裝完成后訪問:
配置主機2:
[root@localhost Packages]# mount -t nfs 10.1.252.28:/data/app/web /var/www/html/
掛載后直接訪問:
測試:
使用admin賬號發帖:刷新,兩個ip都可以正常顯示:
注意:遇到的問題四:centos6中安裝php之后,其模塊配置文件在conf.d/目錄下的php.conf中;
一定要注意授權的地址及庫等正確;
安裝時填寫數據庫要填寫IP,在生產中為了存放數據都會單獨使用數據庫服務器;
配置lamp時注意與php的結合。
額外測試:
配置bind,添加區域并將同一個域名解析為兩個IP,也就是兩條A記錄;這樣能夠使登錄網頁后使用不同的ip進行登錄,也就實現了一定的負載均衡能力,但是在瀏覽器中一般會有緩存,在真正使用時,可以將ip分別添加至網卡的別名中。當一臺服務器故障,另一臺服務器上有第一臺的ip,也不會影響用戶的直接訪問。
測試:可以使用ping命令或者dig檢測:
注意:遇到的問題五:此處更改resolv.conf,使之通過252.28主機進行名稱解析:
使用ping命令,通過多次執行可以看出,兩個IP交替出現,能夠實現一定的負載均衡能力:
原創文章,作者:SilencePavilion,如若轉載,請注明出處:http://www.www58058.com/53748