LVS-NAT集羣
環境:RH6
客戶端
192.168.2.253
分發器
eth0:192.168.4.50
eth1:192.168.2.50
網站服務
192.168.4.51
192.168.4.52
[root@host51 ~]# service iptables stop //關防火牆
[root@host51 ~]# chkconfig iptables off //開機不起
[root@host51 ~]# setenforce 0
[root@host51 ~]# yum -y install httpd
[root@host51 ~]# echo "192.168.4.51" > /var/www/html/test.html
[root@host51 ~]# service httpd start
[root@host51 ~]# chkconfig httpd on
[root@host51 ~]# yum -y install elinks
[root@host51 ~]# elinks --dump http://localhost/test.html
52與51操作相同,網頁內容不同以後期測試
++++++++++++++++++++++++++++++++++++++++++++++++
網站服務器51/52
1 指定網關地址
#route -n
#route add default gw 192.168.4.50 //臨時改
#route -n
#vim /etc/sysconfig/network-scripts/ifcfg-eth0 //永久配置網關
GATEWAY=192.168.4.50
#sysctl -p
客戶端192.168.2.253也指定網關
配置分發器50:
[root@host50 ~]# sed -i '7s/0/1/' /etc/sysctl.conf 開啓內核路由轉發功能
sed -n '7p' /etc/sysctl.conf
裝包ipvsadm
添加虛擬服務
[root@host50 ~]# ipvsadm -L
[root@host50 ~]# ipvsadm -A -t 192.168.2.50:80 -s rr
添加realserver
[root@host50 ~]# ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.51:80 -m
[root@host50 ~]# ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.52:80 -m
啓動服務
[root@host50 ~]# service ipvsadm save
[root@host50 ~]# chkconfig ipvsadm on
[root@host50 ~]# ipvsadm -Ln --stats
++++++++++++++++++++++++++++++++++++++++++++++++++
客戶端訪問網站
[root@host253 ~]# elinks --dump http://192.168.2.50/test.html //多次訪問,會發現訪問內容爲51與52的test頁面內容
[root@host50 ~]# ipvsadm -Ln --stats
ipvsadm -C 刪除
刪除後要使用service ipvsadm save保存配置才能刪除掉
ipvsadm -d -t 192.168.2.50:80 -r 192.168.4.51:80 //刪除51
ipvsadm -e -t 192.168.2.50:80 -r 192.168.4.51.80 -w 3 -m //將51的傳輸值改爲3
ipvsadm -E -t 192.168.2.50:80 -s wwr //將算法改爲wwr
++++++++++++++++++++++++++++++++++++++++++++++++++
##################################################
LVS-DR集羣
環境:
客戶端 192.168.4.253
分發器 eth0:192.168.4.50
eth1:192.168.2.50
網站服務web 192.168.4.51
192.168.4.52
[root@host51 ~]# service iptables stop //關防火牆
[root@host51 ~]# chkconfig iptables off //開機不起
[root@host51 ~]# setenforce 0
[root@host51 ~]# yum -y install httpd
[root@host51 ~]# echo "192.168.4.51" > /var/www/html/test.html
[root@host51 ~]# service httpd start
[root@host51 ~]# chkconfig httpd on
[root@host51 ~]# yum -y install elinks
[root@host51 ~]# elinks --dump http://localhost/test.html
52與51操作相同,網頁內容不同以後期測試
+++++++++++++++++++++++++++++++++++++++++++++++
在web51,web52上進行vip設置
ifconfig lo
ifconfig lo:1 192.168.4.252/32
ifconfig lo
cd /proc/sys/net/ipv4/conf
echo 1 > lo/arp_ignore //只回應入口處的廣播包
echo 2 > lo/arp_announce //選擇最適應的口收發包
echo 1 > all/arp_ignore
echo 2 > all/arp_announce
vim /etc/rc.local //永久配置在此項加上述命令
+++++++++++++++++++++++++++++++++++++++++++++
分發器host50
[root@host50 ~]# sed -i '7s/0/1/' /etc/sysctl.conf 開啓內核路由轉發功能
sed -n '7p' /etc/sysctl.conf
裝包ipvsadm
ipvsadm -C
ipvsadm -Ln
service ipvsadm save
ipvsadm -A -t 192.168.4.252:80 -s rr
ipvsadm -a -t 192.168.4.252:80 -r 192.168.4.51:80 -g
ipvsadm -a -t 192.168.4.252:80 -r 192.168.4.52:80 -g
service ipvsadm save
+++++++++++++++++++++++++++++++++++++++++++++++
客戶機192.168.4.253
down掉eth1,在eth0上配192.168.4.253
elinks -dump http://192.168.4.252/test.html
elinks -dump http://192.168.4.252/test.html
解綁ip地址:
方法一 ifdown lo;ifup lo;ifconfig lo:1
方法二 service network restart
+++++++++++++++++++++++++++++++++++++++++++++++++
##############################################################
haproxy (LB)
分發器
一、部署LAMP服務 (53,54)
yum -y install mysql mysql-server httpd
yum -y install php php-mysql
vim /var/www/html/test.php
<?php
$x=mysql_connect("localhost","root","123456");
if($x){ echo "ok"; }else{ echo "err"; };
?>
service iptables stop
chkconfig iptables off
setenforce 0
service mysqld start
service httpd start
chkconfig httpd on
chkconfig mysqld on
配置分發器 50
yum -y install haproxy
chkconfig haproxy on
vim /etc/haproxy/haproxy.cfg
stats uri /admin
listen websrv-rewrite 0.0.0.0:80
cookie SERVERID rewrite
balance roundrobin
server web1 192.168.4.53:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server web2 192.168.4.54:80 cookie app1inst2 check inter 2000 rise 2 fall 5
service haproxy start
客戶端測試
火狐訪問http://192.168.4.50/admin
++++++++++++++++++++++++++++++++++++++++++++++++++
集羣分組
四臺網絡集羣
html 51 52
php 53 54
host50
vim /etc/haproxy/haproxy.cfg
59 stats uri /admin
60 frontend weblb *:80
61 acl urlhtml path_end -i .html
62 acl urlphp path_end -i .php
63
64 use_backend htmlgrp if urlhtml
65 use_backend phpgrp if urlphp
66
67 default_backend htmlgrp
68 backend htmlgrp
69 balance roundrobin
70 server web51 192.168.4.51:80 check
71 server web52 192.168.4.52:80 check
72 backend phpgrp
73 balance roundrobin
74 server web53 192.168.4.53:80 check
75 server web54 192.168.4.54:80 check
service haproxy start
火狐訪問http://192.168.4.50/admin
客戶端測試
elinks -dump http://192.168.4.50/
elinks -dump http://192.168.4.50/test.php
elinks -dump http://192.168.4.50/test.html
####################################################
keepalived (HA)
任意單故障節點的高可用集羣
主 web53
備 web54
vip(虛擬IP) 192.168.4.251
1 在高可用集羣的主機上安裝keepalived軟件
yum -y install keepalived
rpm -qc keepalived //查看該軟件的主配置程序
2 分別修改服務的主配置文件
vim /etc/keepalived/keepalived.conf
刪除31行之後的內容
192.168.4.53(主)
15 vrrp_instance webha {
16 state MASTER
17 interface eth0
18 virtual_router_id 51
19 priority 150 //優先級
20 advert_int 1
21 authentication {
22 auth_type PASS //驗證集羣的方式
23 auth_pass 654321
24 }
25 virtual_ipaddress {
26 192.168.4.251 //虛擬IP地址,要保證環境重沒有此ip存在
27 }
28 }
192.168.4.54(備)
15 vrrp_instance VI_1 {
16 state BACKUP
17 interface eth0
18 virtual_router_id 51
19 priority 100
20 advert_int 1
21 authentication {
22 auth_type PASS
23 auth_pass 654321
24 }
25 virtual_ipaddress {
26 192.168.4.251
27 }
28 }
3 啓動keepalived服務
優先啓動優先級較高的主機
service keepalived start
4 查看高可用集羣主機上是否獲取vip地址
ip addr show|grep 192.168.4. //查看過濾ip,看是否有虛擬ip產生,若操作正確,web53會多一個虛擬ip,web54只有本機ip
5 驗證
火狐訪問http://192.168.4.251/test.php
顯示的是web53的文件內容
關閉web53上的keepalived服務,再訪問網頁
顯示的是web54的文件內容
修復重啓web53的keepalived服務,再訪問網頁,由於緩存。可能無法得到主服務器的內容,可通過ip addr show|grep 192 來查看虛擬IP是否被web53搶回
################################################################
keepalived+lvs/DR
1 配置realserver 51/52
[root@host51 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@host51 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@host51 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@host51 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@host51 ~]# ifconfig lo:1 192.168.4.252/32
52同51
2 配置分發器50(主)、55(備)
yum -y install ipvsadm
yum -y install keepalived
vim /etc/keepalived/keepalived.conf
刪掉55行後文件
15 vrrp_instance VI_1 {
16 state MASTER
17 interface eth0
18 virtual_router_id 51
19 priority 150
20 advert_int 1
21 authentication {
22 auth_type PASS
23 auth_pass 123456
24 }
25 virtual_ipaddress {
26 192.168.4.252
27 }
28 }
29
30 virtual_server 192.168.4.252 80 {
31 delay_loop 6
32 lb_algo rr
33 lb_kind DR
34 nat_mask 255.255.255.0
35# persistence_timeout 50 //決定是否輪詢
36 protocol TCP
37 connect_timeout 3
38 nb_get_retry 3
39 delay_before_retry 3
40
41 real_server 192.168.4.51 80 {
42 weight 1
43 }
44 real_server 192.168.4.52 80 {
45 weight 1
46 }
47 }
55參照此操作做備用分發器
16 state BACKUP
19 priority 100
3 起服務
service keepalived start
ip addr show | grep 252 //查看有沒有252虛擬IP
ipvsadm -Ln
4 客戶端測試http://192.168.4.252/test.html
########################################################
搭建存儲服務器
存儲介質: 內存 磁盤
存儲: 數據
數據存儲位置: 雲存儲 本地 共享存儲 分佈式存儲
存儲技術: DAS NAS SAN(FC_SAN/IP_SAN) SCSI NFS/CIFS ISCSI
51 52 LB
53 54 HA
50 55 [LVS/DR(分發器) HA]
56 存儲服務器(添加3塊3G的盤)
在56主機上使用SAN共享存儲空間(/dev/vdb /dev/vdc)給前端應用服務器53和54使用
一、共享存儲 56
1.1 裝包
yum -y install scsi-target-utils
rpm -qc scsi-target-utils
service tgtd status
1.2 修改配置文件
vim /etc/tgtd/target.conf
62 <target iqn.2018-01.cn.tedu:host56.diskb>
63 backing-store /dev/vdb
64 write-cache off //存儲緩存關
65 # initiator-address 192.168.4.53 //提供的ip
66 # initiator-address 192.168.4.54
67 vendor_id tarena //廠家
68 product_id disktwo //型號
69 </target>
72 <target iqn.2018-01.cn.tedu:host56.diskc>
73 backing-store /dev/vdc
74 write-cache off
75 # initiator-address 192.168.4.53
76 # initiator-address 192.168.4.54
77 vendor_id tarena
78 product_id disktwo2
79 </target>
1.3 起服務
service tgtd start
chkconfig tgtd on
tgt-admin --show //查看共享信息
二、配置前端應用
(53 54)
2.1 裝包
yum -y install iscsi-initiator-utils
rpm -qc iscsi-initiator-utils
2.2 發現設備
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.56 --discover
2.3 登陸設備
iscsiadm --mode node --targetname iqn.2018-01.cn.tedu:host56.diskb --portal 192.168.4.56:3260 -l
iscsiadm --mode node --targetname iqn.2018-01.cn.tedu:host56.diskc --portal 192.168.4.56:3260 -l -l(--login)登入,-u登出
ls /dev/sd
/dev/sda /dev/sdb //出現2塊盤
ls
2.4 查看登入信息
fdisk -l
ls /dev/vd
ls /dev/sd*
登入共享磁盤的順序,會影響設備在本機的命名名稱。若先登diskc 。則在前端diskc放在/dev/sda中。
配置UDV (53 54)
1 獲取硬件設備的參數信息
[root@host53 ~]# ls /etc/udev/rules.d/
[root@host53 ~]# udevadm info --query=path --name=/dev/sda
/devices/platform/host2/session1/target2:0:0/2:0:0:1/block/sda
[root@host53 ~]# udevadm info --path=/devices/platform/host2/session1/target2:0:0/2:0:0:1/block/sda --attribute-walk
[root@host53 ~]# udevadm info --query=path --name=/dev/sdb
/devices/platform/host3/session2/target3:0:0/3:0:0:1/block/sdb
[root@host53 ~]# udevadm info --path=/devices/platform/host3/session2/target3:0:0/3:0:0:1/block/sdb --attribute-walk
2 編寫存放硬件設備的參數的UDV程序文件
vim /etc/udev/rules.d/70-iscsidisk.rules
SUBSYSTEM=="block", ATTR{size}=="6291456", ATTRS{vendor}=="tarena ", ATTRS{model}=="disktwo ", SYMLINK+="iscsi/sdb"
SUBSYSTEM=="block", ATTR{size}=="6291456", ATTRS{vendor}=="tarena ", ATTRS{model}=="disktwo2 ", SYMLINK+="iscsi/sdc"
3 啓動UDV
start_udev
4 查看命名信息
[root@host53 ~]# ls /dev/iscsi/ -l
總用量 0
lrwxrwxrwx. 1 root root 6 1月 13 06:08 sdb -> ../sda
lrwxrwxrwx. 1 root root 6 1月 13 06:08 sdc -> ../sdb
/dev/iscsi/sda
[root@host53 ~]# ls /dev/iscsi/
sdb sdc
使用共享存儲磁盤存儲數據
fdisk /dev/iscsi/sdb
進行分區操作 /dev/iscsi/sdb鎖分的區等同於/dev/sda所分的區
格式化
mkfs.ext4 /dev/sda1 //格式化時無法時別/dev/iscsi/sdb1,只能對/dev/sdb1進行格式化處理。在上面udev操作中可知此2個路徑指定的是同一塊磁盤。
53,54只用選取一個進行格式化,格式化完成後,另一個主機上的也會被格式化(需登出再登陸纔可以看到格式化的分區)
掛載
blkid /dev/sdb1 //查看UUID
vim /etc/fstab
UUID=7a8cc741-9500-401d-8c2b-add3e08f2e74 /var/www/html ext4 defaults 0 0
mount -a
mount | grep var
###############################################################3
多路徑
存儲服務器有2個網絡地址
eth0 192.168.4.56/24
eth1 192.168.2.56/24
應用服務器
eth0 192.168.4.53/24
eth1 192.168.2.53/24
在存儲服務器共享一個diskd存儲
[root@host56 ~]# vim /etc/tgt/targets.conf
<target iqn.2018-01.cn.tedu:host56.diskd>
backing-store /dev/vdd
write-cache off
</target>
[root@host56 ~]# /etc/init.d/tgtd stop
[root@host56 ~]# /etc/init.d/tgtd start
[root@host56 ~]# tgt-admin --show
在應用器
[root@host53 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.56 --discover
192.168.4.56:3260,1 iqn.2018-01.cn.tedu:host56.diskd
[root@host53 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.56 --discover
192.168.2.56:3260,1 iqn.2018-01.cn.tedu:host56.diskd
都可找到同一個存儲設備,實現多路徑應用
同時登陸後,發現相同的一個存儲生成2個路徑
[root@host53 ~]# iscsiadm --mode node --targetname iqn.2018-01.cn.tedu:host56.diskd --portal 192.168.2.56:3260 -l
[root@host53 ~]# iscsiadm --mode node --targetname iqn.2018-01.cn.tedu:host56.diskd --portal 192.168.4.56:3260 -l
[root@host53 ~]# ls /dev/sd*
/dev/sda /dev/sdb
[root@host53 ~]# scsi_id --whitelisted --device=/dev/sda
1IET 00030001
[root@host53 ~]# scsi_id --whitelisted --device=/dev/sdb
1IET 00030001
2個不同的存儲路徑擁有相同的wwid
[root@host53 ~]# yum -y install device-mapper-multipath
[root@host53 ~]# mpathconf --user_friendly_names n //生成配置文件
[root@host53 ~]# ls /etc/multipath.conf
[root@host53 ~]# vim /etc/multipath.conf
25 defaults {
26 user_friendly_names no
27 getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
28 }
101 multipaths {
102
103 multipath {
104 wwid "1IET 00030001"
105 alias mpatha
106 }
107 }
[root@host53 ~]# /etc/init.d/multipathd start
[root@host53 ~]# chkconfig multipathd on
[root@host53 ~]# ls /dev/mapper/mpatha //定義固定wwid的別名路徑
/dev/mapper/mpatha
分區 --> 格式化 --> 掛載 --> 存儲
[root@host53 ~]# mkfs.ext4 /dev/mapper/mpatha
[root@host53 ~]# blkid /dev/mapper/mpatha
/dev/mapper/mpatha: UUID="8846c46b-2ac8-4207-858b-69dec3439ae5" TYPE="ext4"
[root@host53 ~]# vim /etc/fstab
[root@host53 ~]# multipath -ll //查看多路徑信息
mpatha (1IET 00030001) dm-2 IET,VIRTUAL-DISK
size=3.0G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| - 4:0:0:1 sda 8:0 active ready running<br/>
-+- policy='round-robin 0' prio=1 status=enabled
`- 5:0:0:1 sdb 8:16 active ready running
[root@host53 ~]# multipath -rr //重新加載多路徑信息
可以通過down掉eth0或eth1來進行測試
#############################################################
lvs50 lvs55 分發器 (vip192.168.4.252)
| |
--------------------
| |
web51 web52
\ /
storage57 /dev/sde(3G)
NAS ----->(NFS/Samba)
nfs/cifs
keepalived+lvs/DR環境下
1 配置realserver 51/52
[root@host51 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@host51 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@host51 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@host51 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@host51 ~]# ifconfig lo:1 192.168.4.252/32
52同51
2 配置分發器50(主)、55(備)
yum -y install ipvsadm
yum -y install keepalived
vim /etc/keepalived/keepalived.conf
刪掉55行後文件
15 vrrp_instance VI_1 {
16 state MASTER
17 interface eth0
18 virtual_router_id 51
19 priority 150
20 advert_int 1
21 authentication {
22 auth_type PASS
23 auth_pass 123456
24 }
25 virtual_ipaddress {
26 192.168.4.252
27 }
28 }
29
30 virtual_server 192.168.4.252 80 {
31 delay_loop 6
32 lb_algo rr
33 lb_kind DR
34 nat_mask 255.255.255.0
35# persistence_timeout 50 //決定是否輪詢
36 protocol TCP
37 connect_timeout 3
38 nb_get_retry 3
39 delay_before_retry 3
40
41 real_server 192.168.4.51 80 {
42 weight 1
43 }
44 real_server 192.168.4.52 80 {
45 weight 1
46 }
47 }
55參照此操作做備用分發器
16 state BACKUP
19 priority 100
3 起服務
service keepalived start
ip addr show | grep 252 //查看有沒有252虛擬IP
ipvsadm -Ln
4 客戶端測試http://192.168.4.252/test.html
在50上每隔1秒查看情況watch -n 1 ipvsadm -Ln --stats
NFS存儲技術-----> NFS
57
1 分區與格式化
fdisk /dev/vde
mkfs.ext4 /dev/vde1
blkid /dev/vde1
/dev/vde1: UUID="b06de208-c031-4ad0-be55-9273938ac2b4" TYPE="ext4"
開機掛載
mkdir /sharespace
vim /etc/fstab
mount /dev/vde1 /sharespace
2 使用nfs服務共享掛載目錄
裝包
nfs-utils
rpcbind
/etc/init.d/rpcbind start
chkconfig rpcbind on
vim /etc/exports
/sharespace (rw) //表示所有客戶端,(rw)表示權限
ls -ld /sharespace/
chmod o+x /sharespace/
/etc/init.d/nfs start
chkconfig nfs on
showmount -e localhost //查看本機的共享信息
3 客戶端訪問(web51 web52)
yum -y install nfs-utils
showmount -e 192.168.4.57 //查看57的共享目錄
mount -t nfs 192.168.4.57:/sharespace /var/www/html
########################################################
分佈式存儲
一、理論知識
1.1 什麼是分佈式文件系統
指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。
分佈式文件系統的設計基於客戶機/服務器模式。
1.2 分佈式文件系統特點
將固定於某個地點的某個文件系統。擴展到任意多個地點/多個文件系統
衆多的節點組成一個文件系統網絡,每個節點可以分佈在不同的地點,通過網絡進行節點間的通信和數據傳輸。
1.3 衡量分佈式文件系統的優劣
數據的存儲方式
數據的讀取速率
數據的安全機制(採取冗餘、備份、鏡像等方式)
1.4 服務器角色
主控服務器
-- Master管理各個數據服務器收集它們的信息,瞭解所有數據服務器的生存現狀,然後給他們分配任務。
-- 主控服務器上存放着所有的文件目錄信息,要找一個文件,必須先訪問它。
數據服務器
-- 存放數據的服務器
-- 設計爲冗餘模式
-- 主要的工作模式就是定期向主控服務器彙報其狀況,然後等待並處理命令,更快更安全的存放號數據。
1.5 數據分佈
以塊的方式存儲
-- 把文件數據切成數據塊
-- 將數據塊存儲在數據服務器上
以獨立文件的方式存儲
-- 每臺數據服務器存儲獨立文件
-- 多臺數據服務器存儲相同的文件,實現冗餘及負載均衡
++++++++++++++++++++++++++++++++++++++++++++++
配置 FastDFS
1 配置主控服務器 70
yum -y install gcc gcc-c++
yum -y install libevent
libevent-devel-1.4.13-4.el6.x86_64.rpm
libevent-doc-1.4.13-4.el6.noarch.rpm
libevent-headers-1.4.13-4.el6.noarch.rpm
tar -zxf FastDFS_v4.06.tar.gz
[root@host70 ~]# cd FastDFS
[root@host70 FastDFS]# ls
[root@host70 FastDFS]# vim INSTALL
[root@host70 FastDFS]# ./make.sh
[root@host70 FastDFS]# ./make.sh install
[root@host70 FastDFS]# mkdir -pv /data/fastdfs
[root@host70 FastDFS]#
vim /etc/fdfs/tracker.conf
22 base_path=/data/fastdfs
36 store_lookup=0 //0決定輪詢
182 use_storage_id = true //使用存儲服務器的IP時別
[root@host70 FastDFS]# ls conf/
anti-steal.jpg http.conf storage.conf tracker.conf
client.conf mime.types storage_ids.conf
[root@host70 FastDFS]# cp conf/storage_ids.conf /etc/fdfs/
[root@host70 FastDFS]# ls /etc/fdfs/
client.conf mime.types storage_ids.conf
http.conf storage.conf tracker.conf
[root@host70 FastDFS]# vim /etc/fdfs/storage_ids.conf
100001 group1 192.168.4.71
100002 group1 192.168.4.72
+++++++++++++++++++++++++++++++++++++++++++++++
2 配置存儲點71、72
71、72磁盤分區格式化
[root@host71 ~]# mkdir -p /data/fastdfs
[root@host71 ~]# mount /dev/vdb1 /data/fastdfs/
[root@host71 ~]# df -h
[root@host71 ~]# blkid /dev/vdb1
/dev/vdb1: UUID="b73856c6-93ca-4621-839d-ee35eb7b3c14" TYPE="ext4"
[root@host71 ~]# vim /etc/fstab
UUID="b73856c6-93ca-4621-839d-ee35eb7b3c14 /data/fastdfs/ ext4 defaults 0 0
[root@host71 ~]# yum -y install gcc gcc-c++ libevent
libevent-devel-1.4.13-4.el6.x86_64.rpm
libevent-doc-1.4.13-4.el6.noarch.rpm
libevent-headers-1.4.13-4.el6.noarch.rpm
tar -zxf FastDFS_v4.06.tar.gz
[root@host71 fastdfs]# cd FastDFS
[root@host71 FastDFS]# ./make.sh && ./make.sh install
[root@host71 FastDFS]# vim /etc/fdfs/storage.conf
37 base_path=/data/fastdfs
100 store_path0=/data/fastdfs
109 tracker_server=192.168.4.70:22122
++++++++++++++++++++++++++++++++++++++++++++++
3 起服務
70
[root@host70 FastDFS]# cp init.d/fdfs_trackerd /etc/init.d/
[root@host70 FastDFS]# chmod +x /etc/init.d/fdfs_trackerd
[root@host70 FastDFS]# chkconfig --add fdfs_trackerd
[root@host70 FastDFS]# chkconfig fdfs_trackerd on
[root@host70 FastDFS]# service fdfs_trackerd status
fdfs_trackerd 已停
[root@host70 FastDFS]# service fdfs_trackerd start
Starting FastDFS tracker server:
[root@host70 FastDFS]# netstat -utnapl |grep :22122
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 2453/fdfs_trackerd
71\72
[root@host71 FastDFS]# ls
client COPYING-3_0.txt INSTALL README storage
common HISTORY make.sh restart.sh test
conf init.d php_client stop.sh tracker
[root@host71 FastDFS]# cp init.d/fdfs_storaged /etc/init.d/
[root@host71 FastDFS]# chmod +x /etc/init.d/fdfs_storaged
[root@host71 FastDFS]# chkconfig --add fdfs_storaged
[root@host71 FastDFS]# chkconfig fdfs_storaged on
[root@host71 FastDFS]# service fdfs_storaged start
[root@host71 FastDFS]# netstat -untlap |grep :23000
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 2479/fdfs_storaged
[root@host71 FastDFS]# ls /data/fastdfs/data/
+++++++++++++++++++++++++++++++++++++++++++
4 客戶端訪問主控服務器,驗證配置 (客戶端57)
[root@host57 ~]# mkdir bin
[root@host57 ~]# mkdir /etc/fdfs/
提供訪問命令:上傳文件的命令 下載文件的命令
[root@host71 FastDFS]# ls /usr/local/bin/
[root@host71 FastDFS]# scp /usr/local/bin/fdfs_test 192.168.4.57:/root/bin/
[root@host71 FastDFS]# scp /usr/local/bin/fdfs_upload_file 192.168.4.57:/root/bin/
[root@host71 FastDFS]# scp /usr/local/bin/fdfs_download_file 192.168.4.57:/root/bin/
[root@host71 FastDFS]# scp /usr/local/bin/fdfs_delete_file 192.168.4.57:/root/bin/
[root@host71 fdfs]# scp /etc/fdfs/client.conf 192.168.4.57:/etc/fdfs
編輯連接主控節點主機的配置文件
[root@host57 ~]# vim /etc/fdfs/client.conf
base_path=/data/fastdfs
tracker_server=192.168.4.70:22122
[root@host57 ~]# mkdir -p /data/fastdfs
上傳文件:
[root@host57 ~]# head -3 /etc/passwd > user.txt
[root@host57 ~]# fdfs_test /etc/fdfs/client.conf upload user.txt
group_name=group1, remote_filename=M00/00/00/wKgER1pdKxGAEmwmAAAAaejzMko741.txt
source ip address: 192.168.4.71
可在71、72的/data/fastdfs/data/00/00/目錄下找到客戶端上傳的文件
[root@host57 ~]# fdfs_upload_file /etc/fdfs/client.conf tedu.jpg
group1/M00/00/00/wKgESFpdLkyAczsGAACwEV-ILDc772.jpg
上傳一張圖片,不加test不顯示訪問過程
下載文件: 下載並重命名
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgESFpdLkyAczsGAACwEV-ILDc772.jpg ttt.jpg
刪除文件:
[root@host57 ~]# fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgESFpdLkyAczsGAACwEV-ILDc772.jpg
+++++++++++++++++++++++++++++++++++++++++
5 配置web(71,72)
安裝nginx
[root@host71 fastdfs]# tar -zxf fastdfs-nginx-[root@host71 nginx-1.7.10]# yum -y install zlib-devel pcre-devel
[root@host71 fastdfs]# tar -zxf nginx-1.7.10.tar.gz
[root@host71 fastdfs]# useradd nginx
[root@host71 nginx-1.7.10]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=../fastdfs-nginx-module/src/
[root@host71 nginx-1.7.10]# make && make install
修改模塊配置文件
[root@host71 fastdfs]# cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
[root@host71 fastdfs]# vim /etc/fdfs/mod_fastdfs.conf
40 tracker_server=192.168.4.70:22122
53 url_have_group_name = true
62 store_path0=/data/fastdfs
修改nginx配置文件
[root@host71 fastdfs]# vim /usr/local/nginx/conf/nginx.conf
43 # location / {
44 # root html;
45 # index index.html index.htm;
46 # }
47 location / {
48 ngx_fastdfs_module;
49 }
起服務
[root@host71 fastdfs]# /etc/init.d/fdfs_storaged stop
[root@host71 fastdfs]# /etc/init.d/fdfs_storaged start
[root@host71 fastdfs]# netstat -untlpa |grep :23000
[root@host71 fastdfs]# /usr/local/nginx/sbin/nginx
[root@host71 fastdfs]# netstat -antulp |grep nginx
ca
+++++++++++++++++++++++++++++++++++++++++++
客戶端訪問
[root@host57 ~]# fdfs_upload_file /etc/fdfs/client.conf tedu.jpggroup1/M00/00/00/wKgER1pdQv6AAC8VAACwEV-ILDc211.jpg
[root@host57 ~]# firefox http://192.168.4.72/group1/M00/00/00/wKgER1pdQv6AAC8VAACwEV-ILDc211.jpg