Linux之使用MogileFS分布式文件系统并使用nginx实现反向代理
2017-05-10 19:58
489 查看
MogileFS是一套高效的文件自动备份组件,由Six Apart开发,广泛应用在包括LiveJournal等web2.0站点上。
MogileFS的特性:
工作在应用层,无单点,自动文件复制(复制的最小单位是class,而不是文件),传输中立且使用nfs或者http协议进行传输。
MogileFS的结构组成:
tracker:是mogilefs的核心,是一个调度器,通过数据库来保存元信息,包括daemon,class,host等信息,主要职责:监控后端mogstore节点,并指示store节点完成数据的添加,删除,查询,及节点之间的复制.
mogstore:实际数据的存储位置,通常伪一个http服务器.
database:用来保存节点的全局信息.
1.安装MogileFS
a.下载MogileFS
MogileFS-Server:https://github.com/mogilefs/MogileFS-Server
MogileFS-Utils:https://github.com/mogilefs/MogileFS-Utils
perl-MogileFS-Client:https://github.com/mogilefs/perl-MogileFS-Client
b.安装:
将文件解压并进入文件内
2.配置文件讲解
3.启动并测试
4.使用管理工具配置mogstord节点主机
5.使用浏览器访问
这样一个mogilefs分布式存储就设置好了,只是mogilefsd进程和mogstored进程在统一主机上。
6.负载均衡设计结构
7.使用nginx实,现反向代理
使用nginx反向代理mogilefs时,要用到第三方模块在能使实现代理,nginx身不支持mogilefs的代理,下载模块快为nginx_mogilefs_module,下载地址:http://www.grid.net.ru/nginx/download/nginx_mogilefs_module-1.0.4.tar.gz
8.配置两台mogilefs主机
在配置两台主机是,mogilefsd进程会在数据库中读取mogstord节点的信息,在配置时按照上述阐述仅可以配置,建议在一个mogilefsd节点上配置,另一个节点可以在数据库中读到。
9.测试结果
MogileFS的特性:
工作在应用层,无单点,自动文件复制(复制的最小单位是class,而不是文件),传输中立且使用nfs或者http协议进行传输。
MogileFS的结构组成:
tracker:是mogilefs的核心,是一个调度器,通过数据库来保存元信息,包括daemon,class,host等信息,主要职责:监控后端mogstore节点,并指示store节点完成数据的添加,删除,查询,及节点之间的复制.
mogstore:实际数据的存储位置,通常伪一个http服务器.
database:用来保存节点的全局信息.
1.安装MogileFS
a.下载MogileFS
MogileFS-Server:https://github.com/mogilefs/MogileFS-Server
MogileFS-Utils:https://github.com/mogilefs/MogileFS-Utils
perl-MogileFS-Client:https://github.com/mogilefs/perl-MogileFS-Client
b.安装:
将文件解压并进入文件内
>make Makefile.PL >make && make install >yum install perl-IO-AIO
2.配置文件讲解
*为trakcer配置数据库,并在数据库中创建表,事先在数据库中创建好trakcer访问数据库的用户和密码并给权限。 mysql> grant all on mogilefs.* to "moguser"@"172.16.113.*" IDENTIFIED by "mogpasswd"; Query OK, 0 rows affected (0.01 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) [root@Master mogilefs]mogdbsetup --dbhost=172.16.113.157 --dbport=3306 --dbname=mogilefs --dbrootuser=root --dbrootpass=kairui00544ok --dbuser=moguser --dbpass=mogpasswd --yes --type=mysql 参数解答: dbhost:指定mysql服务器的地址 dbport:指定端口默认为mysql dbrootuser:指定root dbuser:tracker使用mysql的普通用户,事先要创建好此用户并授权 dbpass:普通用户的密码 type:指定数据库的类型,默认问mysql [root@Master mogilefs]# ll /etc/mogilefs/ 总用量 8 -rw-r--r--. 1 root root 1463 5月 9 21:35 mogilefsd.conf -rw-r--r--. 1 root root 92 8月 19 2013 mogstored.conf *mogilefsd.conf为tracker进程的配置文件 daemonize = 1 **后台运行** pidfile = /var/run/mogilefsd/mogilefsd.pid **mogfiled进程运行时使用的pid文件** db_dsn = DBI:mysql:mogilefs:host=172.16.113.157 **使用的数据** db_user = moguser **访问数据库的普通用户** db_pass = mogpasswd listen = *:7001 **mogilefsd进程监听的端口** conf_port = 7001 **配置端口** query_jobs = 10 **工作线程的个数,指查询数据库的线程个数** delete_jobs = 1 **用于删除的线程个数** replicate_jobs = 5 **复制的线程个数** *mogstore.conf为mogstore节点进程的配置文件 maxconns = 10000 **最大并发连接数** httplisten = 0.0.0.0:7500 mgmtlisten = 0.0.0.0:7501 docroot = /mog/mogdata **数据的存放位置**
3.启动并测试
1.创建/var/run/mogilefsd目录并修改属组属主 [root@Master mogilefs]# mkdir -p /var/run/mogilefsd [root@Master mogilefs]# chown -R mogilefs.mogilefs /var/run/mogilefsd/ 2.创建/mog/mogdata目录并修改属组属主 [root@Master mogilefs]# mkdir -p /mog/mogdata [root@Master mogilefs]# chown -R mogilefs.mogilefs /mog/mogdata/ 3.启动mogilefsd进程和mogstored进程 [root@Master mogilefs]# service mogilefsd start Starting mogilefsd [确定] [root@Master mogilefs]# service mogstored start Starting mogstored [确定] **此处的启动脚本是使用rpm包安装,并且自带的,一般使用make安装的没有服务脚本**
4.使用管理工具配置mogstord节点主机
管理工具mogadm命令产用参数详解 >mogadm parameter parameter: check:检测tracker主机 host list:显示mogstore主机 host add <hostname> [option]:将mogstore加入tracker --altip:备用节点 --ip: --port: --status:加进来的主机状态,{alive,down},默认为down device list:显示主机的设备情况,如一共多少,使用了多少 device add <hostname> <devid> [option]:添加设别到主机 --devid=设别号,不要重复 --status:默认伪alive domain list:显示主机的域 domain add <domain_name>:添加一个域 class list:显示类 class add <domain> <class_name> [option] --hashtype:指定hash的方式,默认伪MD5 --mindevconut:副本保持最小数 --replpolicy:复制策略 配置mogstroke: 1.添加主机 [root@Master mogilefs]#mogadm host add mog1 --ip=172.16.113.157 --port=7500 --status=alive 2.为主机添加设备,同时mogstored主机上要实现创建好设备,并且从启动节点 [root@Master mogilefs]# mogadm device add mog1 001 [root@Master mogdata]# mogadm device list mog1 [1]: alive used(G) free(G) total(G) weight(%) dev1: alive 0.557 8.441 8.998 100 3.添加域 [root@Master mogdata]# mogadm domain add file [root@Master mogdata]# mogadm domain list domain class mindevcount replpolicy hashtype -------------------- -------------------- ------------- file default 2 MultipleHosts() NONE 4.添加类 [root@Master mogdata]# mogadm class add file class1 [root@Master mogdata]# mogadm class list domain class mindevcount replpolicy hashtype -------------------- -------------------- ------------- file class1 2 MultipleHosts() NONE file default 2 MultipleHosts() NONE 5.上传文件:mogupload 格式:mogupload --trackers=host --domain= --key=‘’ --file=‘上传文件’ [root@Master dev1]# mogupload --trackers=172.16.113.157 --domain=file --key='fstab.html' --file='/etc/fstab' 6.查看节点上的文件:moglistkeys 格式:moglistkeys --trackers=host --domain= [root@Master dev1]# moglistkeys --trackers=172.16.113.157 --domain=file fstab.html 7.获取文件的保存路径:mogfileinfo 格式:mogfileinfo --trackers=host --domain --key [root@Master dev1]# mogfileinfo --trackers=172.16.113.157 --domain=file --key='fstab.html' - file: fstab.html class: default devcount: 1 domain: file fid: 3 key: fstab.html length: 993 - http://172.16.113.157:7500/dev1/0/000/000/0000000003.fid **文件实际访问位置** 8.下载文件:mogfetch 格式:mogfetch --trackers=host --key --file=‘下载之后放在哪里’ 9.删除文件:mogdelet 格式:mogdelet --trackers=host --domain --key
5.使用浏览器访问
这样一个mogilefs分布式存储就设置好了,只是mogilefsd进程和mogstored进程在统一主机上。
6.负载均衡设计结构
7.使用nginx实,现反向代理
使用nginx反向代理mogilefs时,要用到第三方模块在能使实现代理,nginx身不支持mogilefs的代理,下载模块快为nginx_mogilefs_module,下载地址:http://www.grid.net.ru/nginx/download/nginx_mogilefs_module-1.0.4.tar.gz
1.安装nginx,一定要编译安装,同时编译进第三方模块 [root@clone3 nginx-1.11.12]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --conf-path=/etc/nginx.d --sbin-path=/usr/local/bin --with-http_ssl_module --with-http_stub_status_module --add-module=/home/lirui/nginx_mogilefs_module-1.0.4 [root@clone3 nginx-1.11.12]# make && make install 2.配置nginx配置文件 vim /etc/nginx.d/nginx.conf upstream online_tracker{ server 171.16.113.157:7001; server 171.16.113.160:7001; } server{ location ~ /file { mogilefs_tracker online_tracker; mogilefs_domain file; mogilefs_methods GET PUT DELETE; mogilefs_noverify on; mogilefs_class calss1; mogilefs_pass { proxy_pass $mogilefs_path; proxy_hide_header Content-Type; proxy_buffering off; } } } **详细参数请参考官方文档:http://www.grid.net.ru/nginx/mogilefs.en.html**
8.配置两台mogilefs主机
在配置两台主机是,mogilefsd进程会在数据库中读取mogstord节点的信息,在配置时按照上述阐述仅可以配置,建议在一个mogilefsd节点上配置,另一个节点可以在数据库中读到。
9.测试结果
相关文章推荐
- Linux之使用MogileFS分布式文件系统并使用nginx实现反向代理
- 使用Nginx实现TCP反向代理
- 现在使用Nginx实现TCP反向代理
- 最简单实现跨域的方法:使用nginx反向代理
- 使用Nginx实现TCP反向代理
- nginx 反向代理之使用特定目录和处理程序
- IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容
- Nginx使用反向代理时Hessian411错误解决方案(转)
- 初识linux之nginx反向代理
- 实例详解tomcat组件安装+Nginx反向代理tomcat+Apache使用mod_jk和mod_proxy反向代理和负载均衡 推荐
- 在linux下面安装反向代理功能的NGINX
- 解决Linux下ArcGIS Server的Tomcat不稳定问题,nginx配置反向代理时的一个小问题
- 使用nginx来负载均衡 本文在window与linux下配置nginx实现负载
- centos 6.5 下使用nginx 反向代理 多个tornado
- nginx实现ssl反向代理实战
- Nginx反向代理到后端的tomcat上实现动静分离
- 告别LVS—使用keepalived+nginx实现负载均衡代理多个HTTPS
- 使用nginx来负载均衡,本文在window与linux下配置nginx实现负载
- 反向代理概念以及apache,nginx配置反向代理实现负载均衡方法
- 使用nginx反向代理后,获取用户ip及原理解释