集羣與存儲

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章