分布式存储是一个企业针对大数据的一种较好的处理方法。正是这些海
量数据的应用需求推进了海量存储系统不断的发展和性能不断的改善,推出新的的存储体系结构。从传统的直接存储系统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的分布式存储简单搭配你们已经都会了。
记得点个赞哦!!!