背景
目前线上部署采用的方式为cpanm,但是安装速度很慢。而且由于mogilefs已经停止更新了,如果cpanm服务器下线这个应用,对业务影响较大,故采用下载rpm包通过yum本地安装的方式
要求:
- CentOS 6.X
- mysql 5.7
服务器配置:
mysql: 192.168.1.240
mogilfs server1: 192.168.1.241
mogilefs server2: 192.168.1.242
安装步骤
以下操作全部由root账户执行
- 安装依赖包 , server1和server2都执行
yum -y install make gcc unzip perl-DBD-MySQL perl perl-CPAN perl-YAML perl-Time-HiRes mysql-devel - 将rpm文件下载到服务器中,路径https://pan.baidu.com/s/1iDkbX5f-Xz1rY7_XPWeMIQ
- yum方式安装mogilefs,server1和server2都执行
yum install -y perl-Sys-Syscall-0.23-1.el6.noarch.rpm
yum install -y perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm
yum install -y perl-Perlbal-1.78-1.el6.noarch.rpm
yum install -y perl-Net-Netmask-1.9015-8.el6.noarch.rpm
yum install -y Perlbal-doc-1.78-1.el6.noarch.rpm
yum install -y Perlbal-1.78-1.el6.noarch.rpm
yum install -y perl-IO-stringy-2.110-1.2.el6.rfx.noarch.rpm
yum install -y perl-common-sense-3.5-1.el6.noarch.rpm
yum install -y perl-IO-AIO-3.71-2.el6.x86_64.rpm
yum install -y MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm
yum install -y MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm
yum install -y MogileFS-Server-2.46-2.el6.noarch.rpm
yum install -y perl-MogileFS-Client-1.14-1.el6.noarch.rpm
yum install -y MogileFS-Utils-2.19-1.el6.noarch.rpm
-
配置mysql 数据库,server1执行
mogdbsetup --dbhost=192.168.1.240 --dbrootuser=root --dbrootpass=****** --dbname=mogilefs --dbuser=mogileuser --dbpass=Mogilepass123$ #其中root为mysql root的用户名和密码, dbuser,dbname,dbpass是为mogilefs建立的账户和数据库 - 修改mogilefsd的配置文件,server1和server2都执行
vi /etc/mogilefs/mogilefsd.conf# Database connection information
db_dsn = DBI:mysql:mogilefs:host=192.168.1.240
db_user = mogileuser
db_pass = Mogilepass123$
# IP:PORT to listen on for mogilefs client requests
listen = 0.0.0.0:7001 - 启动mogilefsd,server1和server2都执行
/etc/init.d/mogilefsd start - 添加host ,server1执行
mogadm --trackers=192.168.1.241:7001 host add host_1 -ip=192.168.1.241 -port=7500 -status=alive
mogadm --trackers=192.168.1.241:7001 host add host_2 -ip=192.168.1.242 -port=7500 -status=alive - 添加device ,server1执行
mogadm --trackers=192.168.1.241:7001 device add host_1 1
#mogadm --trackers=192.168.1.241:7001 device add host_2 3
mogadm --trackers=192.168.1.241:7001 device add host_1 2
#mogadm --trackers=192.168.1.241:7001 device add host_2 4 -
修改mogstored的配置文件 /etc/mogilefs/mogstored.conf,server1和server2都执行
maxconns = 10000
httplisten = 0.0.0.0:7500
mgmtlisten = 0.0.0.0:7501
docroot = /data/mogdata -
添加device的目录
在192.168.1.241服务器上建立/data/mogdata/dev1,/data/mogdata/dev2两个目录,
在192.168.1.242服务器上建立/data/mogdata/dev3,/data/mogdata/dev4两个目录 - 启动mogstored,server1和server2都执行
/etc/init.d/mogstored start - 添加domain和class,server1执行
mogadm --trackers=192.168.1.241:7001 domain add images
mogadm --trackers=192.168.1.241:7001 class add images images_class --mindevcount=3 #3为文件保存的副本数量 -
上传图片验证,server1执行
mogupload --trackers=192.168.1.241:7001 --domain=images --key='store_woman.png' --class=images_class --file='store_woman.png'
mogfileinfo --trackers=192.168.1.241:7001 --domain=images --key='store_woman.png' -
配置Nginx反代,访问图片
location ^~ /images/{
mogilefs_tracker mogileimages;
mogilefs_domain files;
mogilefs_methods GET;
mogilefs_pass {
proxy_pass $mogilefs_path;
proxy_hide_header Content-Type;
proxy_buffering off;
}
}
upstream mogileimages{
server 192.168.1.241:7001;
server 192.168.1.242:7001;
} - 验证图片
http://www.domain.com/images/store_woman.png