MogileFS高级应用(二)

一、准备阶段

1、5台机器

10.1.2.180 作为mysql机器

10.1.2.200-202作为集群节点

10.1.2.203作为nginx反向代理

2、拓扑图

三、部署步聚

1、180机器

1.1由于前面单节,180机器安装了mysql和Mogilefs,而现在180作为单独Mysql机器,所以先停掉Mogilefs服务

 [[email protected] tmp]# /etc/init.d/mogilefsd stop
Stopping mogilefsd                                         [确定]

1.2创建mysql用户root的密码,方便集群节点连接上去

 
MariaDB [mogilefs]> GRANT ALL ON *.* TO ‘root‘@‘10.1.%.%‘ IDENTIFIED BY ‘168‘;
MariaDB [mogilefs]> flush privileges;
Query OK, 0 rows affected (0.04 sec)

2、200机器

2.1 重新初始化数据库

[[email protected] mogdata]# mogdbsetup --dbhost=10.1.2.180 --dbname=mogilefs --dbport=3306 --dbrootuser=root --dbrootpass=168 --dbuser=moguser --dbpass=mog168

2.2修改配置文件

[email protected] mogdata]# vim /etc/mogilefs/mogilefsd.conf  

db_dsn = DBI:mysql:mogilefs:host=10.1.2.180
db_user = moguser
db_pass = mog168
listen = 0.0.0.0:7001

2.3重启服务

[[email protected] mogdata]# service mogilefsd restart
[[email protected] mogdata]# ss -tnl | sed -n ‘/7001/p‘
LISTEN     0      128               127.0.0.1:7001                     *:*

2.4启动 mogstored服务

 [[email protected] ~]# vim /etc/mogilefs/mogstored.conf
maxconns = 10000
httplisten = 0.0.0.0:7500
mgmtlisten = 0.0.0.0:7501
docroot = /data0/nfs/mogdata/
[[email protected] ~]# service mogstored restart
[[email protected] ~]# ss -tnl | sed -n ‘/7500\|7501\|7001/p‘
LISTEN     0      128               127.0.0.1:7001                     *:*     
LISTEN     0      128                       *:7500                     *:*     
LISTEN     0      128                       *:7501                     *:*

2.3由于原来已经有了,所以先删除再重新添加

[[email protected] ~]# mogadm --trackers=10.1.2.200:7001 host list
10.1.2.200 [1]: alive
  IP:       10.1.2.200:7500
10.1.2.201 [2]: alive
  IP:       10.1.2.201:7500
[[email protected] ~]# mogadm --trackers=10.1.2.200:7001 host delete 10.1.2.200
Failure deleting host: host_not_empty Unable to delete host; it contains devices still

2.4有错误提示了,先去到180数据库下删除dev1,dev2

MariaDB [mogilefs]> select * from device
    -> ;
+-------+--------+--------+--------+----------+---------+------------+
| devid | hostid | status | weight | mb_total | mb_used | mb_asof    |
+-------+--------+--------+--------+----------+---------+------------+
|     1 |      1 | down   |    100 |   336801 |      66 | 1443524971 |
|     2 |      2 | alive  |    100 |     3737 |     735 | 1443525069 |
+-------+--------+--------+--------+----------+---------+------------+
2 rows in set (0.00 sec)
MariaDB [mogilefs]> delete from device where devid=1;
Query OK, 1 row affected (0.02 sec)
MariaDB [mogilefs]> delete from device where devid=2;
Query OK, 1 row affected (0.01 sec)

2.5再执行删除主机

[[email protected] ~]# mogadm --trackers=10.1.2.200:7001 host delete 10.1.2.200
[[email protected] ~]# mogadm --trackers=10.1.2.200:7001 host delete 10.1.2.201 
[[email protected] ~]# mogadm --trackers=10.1.2.200:7001 host list

2.6把自己添加进来

[[email protected] ~]# mogadm --trackers=10.1.2.200:7001 host add 10.1.2.200 --ip=10.1.2.200 --status=alive
[[email protected] ~]# mogadm --trackers=10.1.2.200:7001 host list
10.1.2.200 [1]: alive
  IP:       10.1.2.200:7500
时间: 2024-10-11 22:59:31

MogileFS高级应用(二)的相关文章

Stm32高级定时器(二)

Stm32高级定时器(二) 1 主从模式:主?从? 谈论主从,可知至少有两个以上的触发或者驱动信号,stm32内部有多个定时器,可以相互之间驱动或者控制. 主模式:定时器使能只受驱动时钟控制或者输出控制信号(TRGO). 从模式:复位模式, 在发生一个触发输入事件时,计数器和它的预分频器能够重新被初始化:同时,如果IMx_CR1寄存器的URS 位为低,还产生一个更新事件UEV :然后所有的预装载寄存器(TIMx_ARR ,TIMx_CCRx)都被更新了. 从模式:门控模式, 计数器的使能依赖于选

mogilefs高级应用(3)

mogilefs高级应用 架构图: 实验说明: 1个mysql+3个即是mogstored又是tracker节点+1个nginx实现反代 为了使用更少的主机,我们采用2台主机 nginx + mogstored + tracker mysql + mogstored + tracker 这里首先快速部署 mogstored + tracker 环境 (详细部署请参照上篇博客) 1.首先对mysql服务器进行设置 mysql > grant all on mogdb.* to 'moguser'@

MySQL数据库 高级查询(二)

高级查询(二)  EXISTS 子查询 语法: SELECT ..... FROM  表名 WHERE EXISTS (子查询); EXISTS 关键字后面的参数是一个任意的子查询,如果该子查询有返回值,则EXISTS 子查询的结果为true,此时再执行外层查询语句.如果没有返回行,则EXISTS 子查询 的结果为false,此时外层语句不再执行查询.  NOT EXISTS 子查询 EXISTS 子查询和NOT EXISTS 子查询的结果只取决于是否有返回记录,不取决于这些记录的内容,所以EX

MySQL数据库高级(二)——自定义函数

MySQL数据库高级(二)--自定义函数 一.自定义函数简介 自定义函数 (user-defined function UDF)是一种对MySQL扩展的途径,其用法和内置函数相同.自定义函数的两个必要条件:A.参数B.返回值(必须有).函数可以返回任意类型的值. 二.自定义函数的使用 1.自定义函数语法 CREATE?FUNCTION?function_name(parameter_nametype,[parameter_name type,...]) RETURNS?{STRING|INTEG

Solidity高级理论(二):Gas

solidity高级理论(二):Gas 关键字:Gas.结构体.节省小技巧 Gas是什么 在Solidity中,用户想要执行DApp都需要支付一定量的Gas,Gas可以用以太币购买,所以,用户每次使用DApp都会发费以太币. 一个 DApp 收取多少 gas 取决于功能逻辑的复杂程度.每个操作背后,都在计算完成这个操作所需要的计算资源,(比如,存储数据就比做个加法运算贵得多), 一次操作所需要花费的 gas 等于这个操作背后的所有运算花销的总和. 由于运行你的程序需要花费用户的真金白银,在以太坊

lua 高级篇(二)

第七章  迭代器与泛型for       迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素,在Lua中我们常常使用函数来描述迭代器,每次调用该函数就返回集合的下一个元素.    一.迭代器与闭包    一个简单的例子: 我们为一个list写一个简单的迭代器,与ipairs()不同的是我们实现的这个迭代器返回元素的值而不是索引下标: function list_iter(t) local i = 0 local n = table.getn(t) return function () i

Spring_总结_04_高级配置(二)之条件注解@Conditional

一.前言 本文承接上一节:Spring_总结_04_高级配置(一)之Profile 在上一节,我们了解到 Profile 为不同环境下使用不同的配置提供了支持,那么Profile到底是如何实现的呢?其实Profile正是通过条件注解来实现的. 条件注解的应用场景举例: (1)希望一个或多个 bean 只有在应用的类路径下包含特定的库时才创建 (2)希望某个bean只有当另外某个特定bean也声明了之后才创建 (3)希望只有某个特定的环境变量设置之后,才会创建某个bean 上述场景能让我们联想到s

HAProxy 高级应用(二)

HAProxy 高级应用 ================================================================================ 概述:   本章将继续介绍haproxy的一些其他应用,具体内容如下: use_backend <backend> 后端主机调用: haproxy中tcp模式的应用: haproxy中listen的应用 =====================================================

iOS开发——高级篇——二维码的生产和读取

一.二维码的生成 从iOS7开始集成了二维码的生成和读取功能此前被广泛使用的zbarsdk目前不支持64位处理器 生成二维码的步骤:导入CoreImage框架通过滤镜CIFilter生成二维码 二维码的内容(传统的条形码只能放数字):纯文本名片URL // 1. 实例化二维码滤镜 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; // 2. 恢复滤镜的默认属性 [filter setDefaults];