分佈式存儲是一個企業針對大數據的一種較好的處理方法。正是這些海
量數據的應用需求推進了海量存儲系統不斷的發展和性能不斷的改善,推出新的的存儲體系結構。從傳統的直接存儲系統DAS,發展出了網絡存儲架構 SAN和NAS網絡附加存儲。node
DAS:直接附加存儲。經過主板上的磁盤線直接存儲到磁盤上,存儲方式是塊存儲,數據塊誇網絡存儲很難。mysql
優勢:速度快nginx
SAN:存儲區域網絡。經過光交換機實現塊級別誇網絡存儲,還能夠經過iSCSI接口(小型計算機存儲藉口)去存。sql
NAS:網絡附加存儲。就是相似NFS文件共享機制,以文件方式存儲。數據庫
今天咱們針對分佈式存儲給你們介紹兩種企業級的應用vim
1、mogilefs+mysql高可用技術centos
架構圖以下:
實驗環境:服務器
實驗須要安裝的包:(每一個mogilefs節點都須要安裝)網絡
yum install perl-Net-Netmask perl-IO-String perl-Sys-Syslog perl-IO-AIO ##安裝一些perl包工具
本地安裝的rpm包: 架構
MogileFS-Server-2.46-2.el6.noarch.rpm #核心服務 perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm #socket MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm # tracker節點 perl-MogileFS-Client-1.14-1.el6.noarch.rpm #客戶端 MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm #Storage存儲節點 MogileFS-Utils-2.19-1.el6.noarch.rpm #主要是MogileFS的一些管理工具 yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perlYAML perl-Time-HiRes #perl編譯安裝環境所須要的包
一、安裝包
yum local install *
二、配置數據庫主從
主數據庫配置
vim /etc/my.cnf server-id=1 log-bin=mysql-bin skip-name-resolve
啓動mysql:
systemctl start mariadb
給SLAVE受權:
grant replication slave,replication client on . to slave@'172.17.%.%' identified by 'magedu';
查看主狀態:
show master status;
從數據庫配置
vim /etc/my.cnf
server-id=2
relay_log=mysql-relay-bin
read-only=1
log_bin=mysql-bin
log_slave_updates=1
指定主master:
mysqlchange master to master_host='172.17.177.177', master_user='slave', master_password='magedu', master_log_file='mysql-bin.000006', master_log_pos=414;
啓動slave:
start slave;
查看I/O和SQL線程是否開啓:
show slave status\G;
三、配置主mysql上的tracker
數據庫先受權:
grant all privileges on mogilefs.* to ‘mogile’@’127.0.0.1’ identified by ‘mogile’ with grant option;
而後初始化數據庫:
mogdbsetup --dbpass=mogile
每次輸mogadm不用再輸入--tracker:
vim /etc/mogilefs/molilefs.conf
trackers=172.17.177.177:7001
而後配置tracker:
vim /etc/mogilefs/mogilefsd.conf db_dsn = DBI:mysql:mogilefs:host=127.0.0.1 db_user = mogile db_pass = mogile listen = 172.17.177.177:7001
啓動tracker:
/etc/init.d/mogilefsd start
查看tracker是否正常:
mogadm check
四、配置storage
vim /etc/mogilefs/mogstored.conf docroot = /data/mogdata mkdir /data/mogdata -p cd /data/mogdata chown mogilefs.mogilefs . -R 啓動mogstored:systemctl start mogstored
五、配置節點
添加主機,將主機信息註冊到數據庫中:
mogadm host add node1 --ip=172.17.166.166 --port=7500 --status=alive mogadm host add node2 --ip=172.17.155.155 --port=7500 --status=alive mogadm host add node3 --ip=172.17.144.144 --port=7500 --status=alive
而後查看是否添加進去:
mogadm check
六、給storage中添加存儲節點(三個storage節點相同)
mkdir -p /data/mogdata/dev1 建立的dev[#]每一個#在系統中不能同樣 cd /data/mogdata/ chown mogilefs.mogilefs . -R
七、給節點添加到tracker中
mogadm device add node1 1 mogadm device add node2 2 mogadm device add node3 3
檢查看加進去沒有:
mogadm check
八、添加域並指定副本
建立域:
mogadm domain add img
在域中添加類,並指定副本:
mogadm class add img m26 --mindevcount=3
查看是否添加:
mogadm domain list
九、此時須要上傳照片去測試是否成功
mogupload - -domain=img --class=m26 - -key=test --file=123.jpg
查看照片是否上傳成功,副本是否三份:
mogfileinfo --domain=img --key=test
十、此時你會發現不能實現自動複製
mogilefs在版本2.46版本以上不能實現自動複製,須要降級到2.3:
wget http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz tar xvf Sys-Syscall-0.23.tar.gz cd /Sys-Syscall-0.23 perl Makefile.PL make make install 重啓tracker和storage systemctl restart tracker systemctl restart storage
2、實現fastdfs分佈式存儲
架構圖以下:
實驗環境:須要三臺centos系統
一、tracker server:172.17.177.177
二、storage server:172.17.166.166 172.17.155.155
一、安裝fastdfs
yum localinstall安裝 fastdfs-5.0.11-1.el7.centos.x86_64.rpm fastdfs-debuginfo-5.0.11-1.el7.centos.x86_64.rpm fastdfs-server-5.0.11-1.el7.centos.x86_64.rpm fastdfs-tool-5.0.11-1.el7.centos.x86_64.rpm libfastcommon-1.0.36-1.el7.centos.x86_64.rpm libfastcommon-devel-1.0.36-1.el7.centos.x86_64.rpm libfdfsclient-5.0.11-1.el7.centos.x86_64.rpm libfdfsclient-devel-5.0.11-1.el7.centos.x86_64.rpm
二、在172.17.177.177上更改tracker
cd /etc/fdfs/ cp tracker.conf.samle tracker.conf vim tracker.conf(主要是更改一下路徑) disabled=false(默認爲false,表示是否無效) port=22122(默認爲22122) base_path=/data/fastdfs/tracker
建立目錄:
mkdir /data/fastdfs/tracker
啓動tracker:
/etc/init.d/fdfs_trackerd start
三、在172.17.166.166和172.17.155.155上配置storage
cd /etc/fdfs/ cp storage.conf.sample storage.conf vim storage.conf(主要是更改組和工做路徑以及存儲路徑) group=group1 disabled=false(默認爲false,表示是否無效) port=23000(默認爲23000) base_path=/data/fastdfs/storage 工做的路徑 tracker_server=172.17.177.177:22122 store_path0=/data/fastdfs/storage 真正存儲的路徑
建立目錄:
mkdir /data/fastdfs/storage
啓動服務:
/etc/init.d/fdfs_storaged start
查看23000端口是否開啓
四、在tracker中配置一個client文件。
先配置一個客戶端文件:
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf* vim /etc/fdfs/client.conf(指定一下tracker和路徑) base_path=/data/fastdfs/tracker tracker_server=172.17.177.177:22122
五、測試可否存儲文件
查看storage節點是否加上:
fdfs_monitor /etc/fdfs/client.conf
上傳一個文件:
fdfs_upload_file /etc/fdfs/client.conf /root/123.jpg
查看文件:
fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/rBGbm1odMrqAUF9uAAZHIffi2RU809.jpg
六、基於nginx實現fastdfs
安裝nginx以及對應的模塊和包
nginx-1.10.2-1.el7.centos.x86_64.rpm nginx-all-modules-1.10.2-1.el7.centos.noarch.rpm nginx-filesystem-1.10.2-1.el7.centos.noarch.rpm nginx-mod-http-geoip-1.10.2-1.el7.centos.x86_64.rpm nginx-mod-http-image-filter-1.10.2-1.el7.centos.x86_64.rpm nginx-mod-http-perl-1.10.2-1.el7.centos.x86_64.rpm nginx-mod-http-xslt-filter-1.10.2-1.el7.centos.x86_64.rpm nginx-mod-mail-1.10.2-1.el7.centos.x86_64.rpm nginx-mod-stream-1.10.2-1.el7.centos.x86_64.rpm
修改nginx的配置文件
vim /etc/nginx/nginx.conf location /group1/M00 { root /data/fastdfs/storage/data; ngx_fastdfs_module; }
修改對應fastdfs模塊
vim /etc/fdfs/mod_fastdfs.conf url_have_group_name = true tracker_server=172.17.252.234:22122 store_path0=/data/fastdfs/storage
七、用http去測試一下
我相信看完這篇文章,基於mogilefs和fastdfs的分佈式存儲簡單搭配你們已經都會了。
記得點個贊哦!!!