3.4 服务安装及启动
基本架构(在LNMT架构的基础上改进)
服务器规划
服务安装及启动
数据库授权
MariaDB [(none)]> grant all on *.* to 'root'@'192.168.%.%' identified by 'magedu';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> grant all on mogdb.* to 'moguser'@'192.168.%.%' identified by 'mogpass';
Query OK, 0 rows affected (0.02 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
grant all on *.* to 'root'@'192.168.%.%' identified by 'magedu';
grant all on mogdb.* to 'moguser'@'192.168.%.%' identified by 'mogpass';
flush privileges;
主机192.168.0.45(mogilefs+mogilestored)
# 所需程序包
[root@mysql mogilefs]# ls
MogileFS-Server-2.46-2.el6.noarch.rpm perl-MogileFS-Client-1.14-1.el6.noarch.rpm
MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm perl-Net-Netmask-1.9015-8.el6.noarch.rpm
MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm perl-Perlbal-1.78-1.el6.noarch.rpm
MogileFS-Utils-2.19-1.el6.noarch.rpm
[root@mysql mogilefs]# yum install -y *.rpm perl-IO-AIO
# 修改配置文件
[root@mysql mogdata]# vi /etc/mogilefs/mogilefsd.conf # 调度器tracker的配置文件
# Enable daemon mode to work in background and use syslog
daemonize = 1
# Where to store the pid of the daemon (must be the same in the init script)
pidfile = /var/run/mogilefsd/mogilefsd.pid
# Database connection information
db_dsn = DBI:mysql:mogdb:host=192.168.0.45:3406 # 存储元数据的数据库信息,包括数据库mogdb及连接地址192.168.0.45:3406
db_user = moguser # 数据库用户名
db_pass = mogpass # 数据库登录密码
# IP:PORT to listen on for mogilefs client requests
listen = 192.168.0.45:7001
[root@mysql mogdata]# vi /etc/mogilefs/mogstored.conf # 存储节点mogstored的配置文件
maxconns = 10000 # 最大连接数
httplisten = 0.0.0.0:7500 # http请求监听的地址和端口
mgmtlisten = 0.0.0.0:7501
docroot = /var/mogdata # 存储设备挂载目录,可修改
# 准备存储设备
[root@mysql mogdata]# fdisk /dev/sda # 新建分区sda4,大小10G(实际生产环境中,此为整块磁盘,而非分区)
[root@mysql mogdata]# kpartx -af /dev/sda
[root@mysql mogdata]# partx -a /dev/sda
[root@mysql mogdata]# cat /proc/partitions # 验证分区已创建成功
[root@mysql mogdata]# mke2fs -t ext4 /dev/sda4 # 初始化分区
[root@mysql mogdata]# mkdir /var/mogdata
[root@mysql mogdata]# mount -t ext4 /dev/sda4 /var/mogdata/ # 挂载分区
[root@mysql mogdata]# mkdir /var/mogdata/dev1 # 创建存储设备dev1(注:在192.168.0.46上,此为dev2)
[root@mysql mogdata]# chown -R mogilefs.mogilefs /var/mogdata/
# 初始化数据库
[root@mysql mogdata]# mogdbsetup --dbhost=192.168.0.45 --dbport=3406 --dbrootuser=root --dbrootpass=magedu --dbuser=moguser --dbpass=mogpass --dbname=mogdb --yes
# 初始化数据库执行一次即可,故在主机192.168.0.46上无需执行此步骤
# 启动服务
[root@mysql mogilefs]# service mogilefsd start
Starting mogilefsd [ OK ]
[root@mysql mogilefs]# service mogstored start
Starting mogstored [ OK ]
主机192.168.0.46(mogilefs+mogilestored)
同上,直至mogilefsd和mogstored服务都正常启动
3.5 配置部署(任意一个tracker节点上配置即可,如192.168.0.45)
添加节点
[root@mysql mogdata]# echo "trackers = 192.168.0.45:7001" > /etc/mogilefs/mogilefs.conf # 管理程序mogadm的配置文件
[root@mysql mogdata]# mogadm host add 192.168.0.45 --ip=192.168.0.45 --status=alive # 添加节点1
[root@mysql mogdata]# mogadm host add 192.168.0.46 --ip=192.168.0.46 --status=alive # 添加节点2
[root@mysql mogilefs]# mogadm host list # 查看已添加节点
192.168.0.45 [1]: alive
IP: 192.168.0.45:7500
192.168.0.46 [2]: alive
IP: 192.168.0.46:7500
添加设备
[root@mysql mogdata]# mogadm device add 192.168.0.45 1 # 添加存储设备1,设备编号需与/var/mogdata目录下的dev1目录保持一致
[root@mysql mogdata]# mogadm device add 192.168.0.46 2 # 添加存储设备2,设备编号需与/var/mogdata目录下的dev2目录保持一致
[root@mysql mogdata]# mogadm device list # 查看已添加设备
192.168.0.45 [1]: alive
used(G) free(G) total(G) weight(%)
dev1: alive 0.146 9.200 9.347 100
192.168.0.46 [2]: alive
used(G) free(G) total(G) weight(%)
dev2: alive 0.146 9.199 9.346 100
添加domain(域)
[root@mysql mogdata]# mogadm domain add images
[root@mysql mogdata]# mogadm domain add text
[root@mysql mogdata]# mogadm domain list
domain class mindevcount replpolicy hashtype
-------------------- -------------------- ------------- ------------ -------
images default 2 MultipleHosts() NONE
text default 2 MultipleHosts() NONE
添加class(文件类别)
[root@mysql mogdata]# mogadm class add images class1 --mindevcount=2 # 在域images中添加类别class1和class2,最小文件复制份数为2
[root@mysql mogdata]# mogadm class add images class2 --mindevcount=2
[root@mysql mogdata]# mogadm class add text class1 --mindevcount=2 # 在域text中添加类别class1和class2,最小文件复制份数为2
[root@mysql mogdata]# mogadm class add text class2 --mindevcount=2
[root@mysql mogdata]# mogadm class list
domain class mindevcount replpolicy hashtype
-------------------- -------------------- ------------- ------------ -------
images class1 2 MultipleHosts() NONE
images class2 2 MultipleHosts() NONE
images default 2 MultipleHosts() NONE
text class1 2 MultipleHosts() NONE
text class2 2 MultipleHosts() NONE
text default 2 MultipleHosts() NONE