Loading... <h1 id="分布式系统介绍及mogilefs安装基本配置" style="font-size: 2.6em;margin: 1.2em 0px 0.6em;font-family: inherit;line-height: 1.1;color: inherit">分布式系统介绍及MogileFS安装、基本配置</h1> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"></p> <p class="note-tags "><code>分布式</code> <code>MogileFS</code></p> <ul class=" list-paddingleft-2"> <ul class=" list-paddingleft-2"> <li> <p>前言:</p> </li> <li> <p>什么是分布式?</p> </li> <li> <p>分布式存在的意义?</p> </li> <li> <p>分布式的难点及CAP、BASE、2PC、X/Open XA介绍</p> </li> <li> <p>分布式存储和分布式文件系统:</p> </li> <li> <p>MogileFS实现原理:</p> </li> <li> <p>MogileFS编译安装和配置</p> </li> <li> <p>总结</p> </li> </ul> </ul> <h2 id="前言" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">前言:</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-family: 黑体, SimHei;font-size: 16px">不知不觉中我们就进入大数据时代, 什么是大数据? 什么是分布式? 什么是云计算? 我们在后面都将介绍, 本篇文章, 我们主要讨论分布式系统;</span></p> </blockquote> <h2 id="什么是分布式" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">什么是分布式?</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">分布式这个词听起来很高大上, 实际上在我们以前(作者博客)经常构建分布式系统, 从最初的分离LAMP中的MySQL 到引入Varnish缓存页面, 再到使用LVS负载均衡Nginx|Apache, Nginx负载均衡Tomcat等等, 广义上都算是分布式系统.</span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">简单来说分布式就是将一个系统的各个组件(MySQL、PHP、Apache …)分布在网络上的各台主机, 并且各组件之间仅通过消息传递来通信并协调工作</span></p> </blockquote> <h2 id="分布式存在的意义" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">分布式存在的意义?</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-family: 黑体, SimHei;font-size: 16px">其实我们在之前负载均衡相关的博文中已经回答过了, 主要有以下问题:</span></p> <ol style="line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">垂直扩展的性价比不高</span></p> </li> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">单机扩展存在性能上升的临界点</span></p> </li> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">处于稳定性及可用性考虑, 单机会存在多方面的问题</span></p> </li> </ol> </blockquote> <h2 id="分布式的难点及capbase2pcxopen-xa介绍" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">分布式的难点及CAP、BASE、2PC、X/Open XA介绍</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">分布式系统存在以下难点</span></p> <ul style="margin-bottom: 1.1em;line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">缺乏全局时钟</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">面对故障时的独立性</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">很难处理单点故障</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">很难实现事务</span></p> </li> </ul> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">事务要具有ACID. 但是这在分布式系统中很难实现</span></p> <ul style="margin-bottom: 1.1em;line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">A: <em style="line-height: 1.6">Atomicity</em> 原子性</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">C: <em style="line-height: 1.6">Consistency</em> 一致性</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">I: <em style="line-height: 1.6">Isolation</em> 隔离性</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">D: <em style="line-height: 1.6">Durability</em> 持久性</span></p> </li> </ul> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">很多数据库都能实现单机事务, 但是一旦构建为分布式系统, 单机的ACID就不能实现了, 有两种选择, 1、放弃事务 2、引入分布式事务;</span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">分布式事务的实现:</strong></span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">一次事务中的主要角色:</span></p> <ul style="margin-bottom: 1.1em;line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">事务的参与者</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">支持事务的服务器</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">资源服务器</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">事务管理器</span></p> </li> </ul> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">分布式事务的模型和规范:</strong> </span><span style="font-size: 16px;font-family: 黑体, SimHei">Distributed Transaction Processing: The XA Specification</span><span style="font-size: 16px;font-family: 黑体, SimHei"> <br /><strong style="line-height: 1.6">X/Open DTP: Distribution Transaction Process</strong></span></p> <ul style="margin-bottom: 1.1em;line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">AP: 应用程序</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">RM: Resource Manager, 资源管理器, 一般是DBMS</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">TM: Transaction Manager, 负责协调和管理事务 <br />提供给AP编程接口, 并管理资源管理器</span></p> </li> </ul> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">2PC:</strong> <br />Two Phase Commitment Protocol 两段式提交</span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">如图: 一次事务首先要准备资源, 所有节点的资源都准备好后, 同时进行Commit, 如果中途中断则会一起ROLLBACK, 从而实现数据一致性</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703161954-94.jpg" title="1462368251317279.jpg" /></p> <p></p> <p></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"></p> </blockquote> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><strong style="line-height: 1.6">CAP: </strong>CAP的更多信息</p> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">2000年7月 由 Eric Brewer提出, 并经过他人证明, 分布式系统不能同时满足CAP</span></p> </blockquote> <ul style="margin-bottom: 1.1em;line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">C: <em style="line-height: 1.6">Consistency</em> 一致性 所有主机的数据都是同步的</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">A: <em style="line-height: 1.6">Avaiability</em> 可用性 能够保证系统的可用性(有主机宕机不影响用户)</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">P: <em style="line-height: 1.6">Partition tolerance</em> 分区容错性: 即使网络出现故障从而分区, 不影响系统运行</span></p> </li> </ul> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><code>一般情况下的分布式系统都是在C(Consistency)进行妥协</code></p> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><strong style="line-height: 1.6">BASE: 可替代ACID;</strong></p> <ul style="margin-bottom: 1.1em;line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">BA: Basically Availibale 基本可用性</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">S: Soft state 接受一段时间的状态不能同步</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">E: Eventually Consistent 最终一致性</span></p> </li> </ul> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><code>相比于ACID而言, BASE并没有那么苛刻, BASE允许部分的失败但是不会引起系统的故障</code> <br /><code>DNS就是最著名的Eventually Consistent的实现</code></p> <h2 id="分布式存储和分布式文件系统" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">分布式存储和分布式文件系统:</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">存储一般分为两种类型:</span></p> <ul style="margin-bottom: 1.1em;line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">集中式: <br />NAS: Network Attached Storage; 文件系统级别, 例如NFS, FTP, SAMBA… <br />SAN: Storage Aera Network; 块级别, 例如IP SAN, FC SAN…</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">分布式 <br />中心节点存储: 每个集群中有节点专门用来存储元数据, 其他节点则存储部分数据 <br />无中心节点存储: 每个集群各节点都存储元数据和部分数据</span></p> </li> </ul> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">分布式存储和分布式文件系统:</strong></span></p> <ul style="margin-bottom: 1.1em;line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">文件系统: <em style="line-height: 1.6">有文件系统接口</em></span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">存储: <em style="line-height: 1.6">无文件系统接口, 通过API访问</em></span></p> </li> </ul> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">常见的实现:</strong> <br /><strong style="line-height: 1.6">GFS: Google File System</strong> <br />分布式系统的开山鼻祖, 由于Google内部需要遂开发, 后来发布论文公布其技术细节, 但是没有开源 </span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">HDFS: Hadoop Distribution File System</strong> <br />Google论文The Google FileSystem的开源实现</span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="line-height: 1.6;font-family: 黑体, SimHei">GFS和HDFS都将元数据存储于内存中, 定期存储在持久存储中 、只适合存储百万、千万级别的大文件</span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">GlusterFS:</strong> <br />去中心化设计, 没有元数据节点 </span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><br /><strong style="line-height: 1.6">Ceph:</strong> <br />Linux内核级实现的分布式文件系统, 已经收录Linux内核 </span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><br /><strong style="line-height: 1.6">MogileFS:</strong> <br />适用于存储海量小文件, 使用perl语言编写, 国内有人使用C语言重写并开源为FastDFS </span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><br /><strong style="line-height: 1.6">TFS:</strong> <br />TaoBao FileSystem, 基于HDFS开发 适用于存储海量小文件</span></p> </blockquote> <h2 id="mogilefs实现原理" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">MogileFS实现原理:</h2> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><strong style="line-height: 1.6">MogileFS中的术语:</strong></p> <blockquote><p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">tracker:</strong> 借助数据库保存各个节点文件的元数据信息, 便于检索定位数据位置并监控各个节点, 告知客户端存储区的位置并指挥storage节点复制数据副本, 进程为mogilefsd</span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">database:</strong> 为tracker节点存储节点文件的元数据信息</span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">storage:</strong> 将指定域中的键转换为特有的文件名存储于在特定的设备文件中, 转换后文件名为值, storage自动维护键值之间的对应关系, storage节点使用http进行数据传输, 依赖于perbal, 进程为mogstored, perbal</span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">Domain:</strong> 一个域中的键值是唯一的, 一个MogileFS可以有多个域来存储不同类型的文件</span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">Class:</strong> 复制的最小单位, 管理文件属性, 定义文件存储在不同设备上的份数</span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">device:</strong> 一个存储节点, 可以有多个device, 就是用来存放文件的目录, 每个设备都有一个设备ID, 需要在mogstored配置文件中docroot配置, 设备不能删除, 只能将设备的状态置为dead, 置为dead之后数据就无法恢复了, 并且设备ID也无法再使用</span></p> </blockquote> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><strong style="line-height: 1.6">MogileFS Architecture:</strong></p> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161954-51.png" title="1462368251514361.png" /></p> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><strong style="line-height: 1.6">MogileFS的特性:</strong></p> <blockquote><ul style="line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">工作的应用层, 不需要特殊的组件</span></p> </li> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">无单点故障</span></p> </li> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">自动复制文件</span></p> </li> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">简单的命名空间</span></p> </li> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">不需要RAID</span></p> </li> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">不能追加, 随机写</span></p> </li> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">数据通过HTTP/WebDAV服务上传到Storage Node(mogstored)</span></p> </li> <li> <p><span style="font-family: 黑体, SimHei;font-size: 16px">MySQL存储MogileFS元数据(命名空间、位置)</span></p> </li> </ul> </blockquote> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><strong style="line-height: 1.6">MogileFS的高可用架构:</strong></p> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161955-92.png" title="1462368251112263.png" /></p> <h2 id="mogilefs编译安装和配置" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">MogileFS编译安装和配置</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">本我来是打算进行编译安装的, 但是由于各种原因, 我这次就使用rpm包安装了, 本次rpm包是马哥提供的.</span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">对于实验中的所有操作过程, 由于时间原因, 这里都不在叙述 详情看: </span><span style="font-size: 16px;font-family: 黑体, SimHei">官方WIKI</span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"><strong style="line-height: 1.6">实验环境</strong></span></p> <ul style="line-height: 1.6" class=" list-paddingleft-2"> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">node6 172.16.1.7 tracker, database</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">node7 172.16.1.8 storage</span></p> </li> <li> <p><span style="font-size: 16px;font-family: 黑体, SimHei">node8 172.16.1.9 storage</span></p> </li> </ul> </blockquote> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><em style="line-height: 1.6">安装: 需要epel源. 每一台主机都要安装</em></p> <pre class="prettyprint hljs-light"><code class="hljs stylus">[root@node6~] yum install perl-Net-Netmask perl-IO-AIO #每一台主机都必须安装, 否则可能导致mogstored不能正常监听端口<br />[root@node6~] yum localinstall MogileFS-Server-<span class="hljs-number">2.46</span>-<span class="hljs-number">2</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> MogileFS-Server-mogilefsd-<span class="hljs-number">2.46</span>-<span class="hljs-number">2</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> MogileFS-Server-mogstored-<span class="hljs-number">2.46</span>-<span class="hljs-number">2</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> MogileFS-Utils-<span class="hljs-number">2.19</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> Perlbal-<span class="hljs-number">1.78</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> Perlbal-doc-<span class="hljs-number">1.78</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> perl-MogileFS-Client-<span class="hljs-number">1.14</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> perl-Net-Netmask-<span class="hljs-number">1.9015</span>-<span class="hljs-number">8</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> perl-Perlbal-<span class="hljs-number">1.78</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> <br />[root@node6~] yum install mysql-server <br />[root@node6~] scp *<span class="hljs-class" style="line-height: 1.6">.rpm</span> <span class="hljs-number">172.16</span>.<span class="hljs-number">1.8</span>:/root/ <br />[root@node6~] scp *<span class="hljs-class" style="line-height: 1.6">.rpm</span> <span class="hljs-number">172.16</span>.<span class="hljs-number">1.9</span>:/root/<br /><br />[root@node7~] yum install perl-Net-Netmask perl-IO-AIO #每一台主机都必须安装, 否则可能导致mogstored不能正常监听端口<br />[root@node7~] yum localinstall MogileFS-Server-<span class="hljs-number">2.46</span>-<span class="hljs-number">2</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> MogileFS-Server-mogilefsd-<span class="hljs-number">2.46</span>-<span class="hljs-number">2</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> MogileFS-Server-mogstored-<span class="hljs-number">2.46</span>-<span class="hljs-number">2</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> MogileFS-Utils-<span class="hljs-number">2.19</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> Perlbal-<span class="hljs-number">1.78</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> Perlbal-doc-<span class="hljs-number">1.78</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> perl-MogileFS-Client-<span class="hljs-number">1.14</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> perl-Net-Netmask-<span class="hljs-number">1.9015</span>-<span class="hljs-number">8</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> perl-Perlbal-<span class="hljs-number">1.78</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> <br /><br />[root@node8~] yum install perl-Net-Netmask perl-IO-AIO #每一台主机都必须安装, 否则可能导致mogstored不能正常监听端口<br />[root@node8~] yum localinstall MogileFS-Server-<span class="hljs-number">2.46</span>-<span class="hljs-number">2</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> MogileFS-Server-mogilefsd-<span class="hljs-number">2.46</span>-<span class="hljs-number">2</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> MogileFS-Server-mogstored-<span class="hljs-number">2.46</span>-<span class="hljs-number">2</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> MogileFS-Utils-<span class="hljs-number">2.19</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> Perlbal-<span class="hljs-number">1.78</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> Perlbal-doc-<span class="hljs-number">1.78</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> perl-MogileFS-Client-<span class="hljs-number">1.14</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> perl-Net-Netmask-<span class="hljs-number">1.9015</span>-<span class="hljs-number">8</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> perl-Perlbal-<span class="hljs-number">1.78</span>-<span class="hljs-number">1</span><span class="hljs-class" style="line-height: 1.6">.el6</span><span class="hljs-class" style="line-height: 1.6">.noarch</span><span class="hljs-class" style="line-height: 1.6">.rpm</span> <br /></code></pre> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><em style="line-height: 1.6">配置数据库:</em></p> <pre class="prettyprint hljs-light"><code class="hljs gherkin">[root<span class="hljs-comment">@node6~] service mysqld start</span><br /><br />mysql> GRANT ALL ON <span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">*</span>.<span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">*</span> TO root<span class="hljs-comment">@'%' IDENTIFIED BY 'passwd' ; #配置一个可以远程连接的root用户</span><br />Query OK, 0 rows affected (0.00 sec)<br /><br />mysql> GRANT ALL ON mogilefs.<span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">*</span> TO mogileuser<span class="hljs-comment">@'%' IDENTIFIED BY 'passwd'; #配置一个可管理mogilefs数据库的用户</span><br />Query OK, 0 rows affected (0.00 sec)<br /><br />mysql> FLUSH PRIVILEGES;<br />Query OK, 0 rows affected (0.00 sec)<br /><br />mysql> CREATE DATABASE mogilefs; <span class="hljs-comment">#创建mogilefs数据库</span><br />Query OK, 1 row affected (0.00 sec)<br /><br />[root<span class="hljs-comment">@node6~] mogdbsetup --dbhost=172.16.1.7 --dbuser=mogileuser --dbpass=passwd --dbname=mogilefs --dbrootpass=passwd #生成数据表</span><br /><br />mysql> USE mogilefs;<br />Reading table information for completion of table and column names<br />You can turn off this feature to get a quicker startup with -A<br /><br />Database changed<br /> mysql> SHOW TABLES; <span class="hljs-comment">#查看表有没有生成</span><br /> +----------------------+<br /> |<span class="hljs-string"> Tables_in_mogilefs </span>|<br /> +----------------------+<br /> |<span class="hljs-string"> checksum </span>|<br /> |<span class="hljs-string"> class </span>|<br /> |<span class="hljs-string"> device </span>|<br /> |<span class="hljs-string"> domain </span>|<br /> |<span class="hljs-string"> file </span>|<br /> |<span class="hljs-string"> file_on </span>|<br /> |<span class="hljs-string"> file_on_corrupt </span>|<br /> |<span class="hljs-string"> file_to_delete </span>|<br /> |<span class="hljs-string"> file_to_delete2 </span>|<br /> |<span class="hljs-string"> file_to_delete_later </span>|<br /> |<span class="hljs-string"> file_to_queue </span>|<br /> |<span class="hljs-string"> file_to_replicate </span>|<br /> |<span class="hljs-string"> fsck_log </span>|<br /> |<span class="hljs-string"> host </span>|<br /> |<span class="hljs-string"> server_settings </span>|<br /> |<span class="hljs-string"> tempfile </span>|<br /> |<span class="hljs-string"> unreachable_fids </span>|<br /> +----------------------+<br /> 17 rows in set (0.00 sec)<br /></code></pre> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><em style="line-height: 1.6">配置mogilefsd</em></p> <pre class="prettyprint hljs-light"><code class="hljs cpp">[root@node6~] vim /etc/mogilefs/mogilefsd.conf<br />db_dsn = DBI:mysql:mogilefs:host=<span class="hljs-number">172.16</span><span class="hljs-number">.1</span><span class="hljs-number">.7</span><br />db_user = mogileuser<br />db_pass = passwd<br />listen = <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">7001</span><br />conf_port = <span class="hljs-number">7001</span><br /><br />[root@node6~] service mogilefsd start<br />Starting mogilefsd [ OK ]<br /><br /><br /><br />[root@node6~] mogadm host add node1 --ip=<span class="hljs-number">172.16</span><span class="hljs-number">.1</span><span class="hljs-number">.7</span> alive<br />[root@node6~] mogadm host add node2 --ip=<span class="hljs-number">172.16</span><span class="hljs-number">.1</span><span class="hljs-number">.8</span> alive<br />[root@node6~] mogadm host add node3 --ip=<span class="hljs-number">172.16</span><span class="hljs-number">.1</span><span class="hljs-number">.9</span> alive<br />[root@node6~] mogadm host <span class="hljs-built_in" style="line-height: 1.6;font-weight: bold">list</span><br />node1 [<span class="hljs-number">1</span>]: down<br /> IP: <span class="hljs-number">172.16</span><span class="hljs-number">.1</span><span class="hljs-number">.7</span>:<span class="hljs-number">7500</span><br /><br />node2 [<span class="hljs-number">2</span>]: down<br /> IP: <span class="hljs-number">172.16</span><span class="hljs-number">.1</span><span class="hljs-number">.8</span>:<span class="hljs-number">7500</span><br /><br />node3 [<span class="hljs-number">3</span>]: down<br /> IP: <span class="hljs-number">172.16</span><span class="hljs-number">.1</span><span class="hljs-number">.9</span>:<span class="hljs-number">7500</span><br /><br /></code></pre> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><em style="line-height: 1.6">配置mogstored</em></p> <pre class="prettyprint hljs-light"><code class="hljs haskell">[root@node6~] mkdir /<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/dev1 -pv</span><br /> mkdir: created directory `/<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>'</span><br /> mkdir: created directory `/<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs'</span><br /> mkdir: created directory `/<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/dev1'</span><br />[root@node6~] vim /etc/mogilefs/mogstored.conf <br /> maxconns = <span class="hljs-number">10000</span><br /> httplisten = <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">7500</span><br /> mgmtlisten = <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">7501</span><br /> docroot = /<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/</span><br /><br />[root@node6 ~]# chown mogilefs.mogilefs /<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/ -<span class="hljs-type" style="line-height: 1.6">R</span></span><br />[root@node6~] service mogstored start<br /><span class="hljs-type" style="line-height: 1.6">Starting</span> mogstored [ <span class="hljs-type" style="line-height: 1.6">OK</span> ]<br /><br />[root@node7~] mkdir /<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/dev2 -pv</span><br /> mkdir: created directory `/<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>'</span><br /> mkdir: created directory `/<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs'</span><br /> mkdir: created directory `/<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/dev2'</span><br />[root@node7~] vim /etc/mogilefs/mogstored.conf <br /> maxconns = <span class="hljs-number">10000</span><br /> httplisten = <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">7500</span><br /> mgmtlisten = <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">7501</span><br /> docroot = /<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/</span><br /><br />[root@node7 ~]# chown mogilefs.mogilefs /<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/ -<span class="hljs-type" style="line-height: 1.6">R</span></span><br />[root@node7~] service mogstored start<br /><span class="hljs-type" style="line-height: 1.6">Starting</span> mogstored [ <span class="hljs-type" style="line-height: 1.6">OK</span> ]<br /><br /><br />[root@node8~] mkdir /<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/dev3 -pv</span><br /><span class="hljs-title">mkdir</span>: created directory `/<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>'</span><br /><span class="hljs-title">mkdir</span>: created directory `/<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs'</span><br /><span class="hljs-title">mkdir</span>: created directory `/<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/dev3'</span><br />[root@node8~] vim /etc/mogilefs/mogstored.conf <br /><br /><span class="hljs-title">maxconns</span> = <span class="hljs-number">10000</span><br /><span class="hljs-title">httplisten</span> = <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">7500</span><br /><span class="hljs-title">mgmtlisten</span> = <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">7501</span><br /><span class="hljs-title">docroot</span> = /<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/</span><br /><br />[root@node8 ~]# chown mogilefs.mogilefs /<span class="hljs-typedef" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">data</span>/mogilefs/ -<span class="hljs-type" style="line-height: 1.6">R</span></span><br />[root@node8~] service mogstored start<br /><span class="hljs-type" style="line-height: 1.6">Starting</span> mogstored [ <span class="hljs-type" style="line-height: 1.6">OK</span> ]<br /><br /><br /><br />[root@node6~] mogadm device add node1 <span class="hljs-number">1</span> alive<br />[root@node6~] mogadm device add node2 <span class="hljs-number">2</span> alive<br />[root@node6~] mogadm device add node3 <span class="hljs-number">3</span> alive<br /><br />[root@node6~] mogadm check<br /> <span class="hljs-type" style="line-height: 1.6">Checking</span> trackers...<br /> <span class="hljs-number">127.0</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>:<span class="hljs-number">7001</span> ... <span class="hljs-type" style="line-height: 1.6">OK</span><br /><br /><span class="hljs-type" style="line-height: 1.6">Checking</span> hosts...<br /> [ <span class="hljs-number">1</span>] node1 ... <span class="hljs-type" style="line-height: 1.6">OK</span><br /> [ <span class="hljs-number">2</span>] node2 ... <span class="hljs-type" style="line-height: 1.6">OK</span><br /> [ <span class="hljs-number">3</span>] node3 ... <span class="hljs-type" style="line-height: 1.6">OK</span><br /><br /><span class="hljs-type" style="line-height: 1.6">Checking</span> devices...<br /> host device size(<span class="hljs-type" style="line-height: 1.6">G</span>) used(<span class="hljs-type" style="line-height: 1.6">G</span>) free(<span class="hljs-type" style="line-height: 1.6">G</span>) use% ob state <span class="hljs-type" style="line-height: 1.6">I</span>/<span class="hljs-type" style="line-height: 1.6">O</span>%<br /> <span class="hljs-comment">---- ------------ ---------- ---------- ---------- ------ ---------- -----</span><br /> [ <span class="hljs-number">1</span>] dev1 <span class="hljs-number">74.435</span> <span class="hljs-number">2.069</span> <span class="hljs-number">72.366</span> <span class="hljs-number">2.78</span>% writeable <span class="hljs-number">28.9</span><br /> [ <span class="hljs-number">2</span>] dev2 <span class="hljs-number">74.435</span> <span class="hljs-number">1.958</span> <span class="hljs-number">72.477</span> <span class="hljs-number">2.63</span>% writeable <span class="hljs-number">0.0</span><br /> [ <span class="hljs-number">3</span>] dev3 <span class="hljs-number">74.435</span> <span class="hljs-number">1.954</span> <span class="hljs-number">72.481</span> <span class="hljs-number">2.63</span>% writeable <span class="hljs-number">0.5</span><br /> <span class="hljs-comment">---- ------------ ---------- ---------- ---------- ------</span><br /> total: <span class="hljs-number">223.306</span> <span class="hljs-number">5.982</span> <span class="hljs-number">217.324</span> <span class="hljs-number">2.68</span>%<br /></code></pre> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><em style="line-height: 1.6">创建域</em></p> <pre class="prettyprint hljs-light"><code class="hljs brainfuck"><span class="hljs-title">[</span><span class="hljs-comment">root@node6~</span><span class="hljs-title">]</span> <span class="hljs-comment">mogupload</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">trackers=172</span><span class="hljs-string">.</span><span class="hljs-comment">16</span><span class="hljs-string">.</span><span class="hljs-comment">1</span><span class="hljs-string">.</span><span class="hljs-comment">7</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">doma^C</span><br /><span class="hljs-title">[</span><span class="hljs-comment">root@node6~</span><span class="hljs-title">]</span> <span class="hljs-comment">mogadm</span> <span class="hljs-comment">domain</span> <span class="hljs-comment">list</span><br /> <span class="hljs-comment">domain</span> <span class="hljs-comment">class</span> <span class="hljs-comment">mindevcount</span> <span class="hljs-comment">replpolicy</span> <span class="hljs-comment">hashtype</span><br /> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><br /><span class="hljs-title">[</span><span class="hljs-comment">root@node6~</span><span class="hljs-title">]</span> <span class="hljs-comment">mogadm</span> <span class="hljs-comment">domain</span> <span class="hljs-comment">add</span> <span class="hljs-comment">files</span><br /><span class="hljs-title">[</span><span class="hljs-comment">root@node6~</span><span class="hljs-title">]</span> <span class="hljs-comment">mogadm</span> <span class="hljs-comment">domain</span> <span class="hljs-comment">add</span> <span class="hljs-comment">images</span><br /><span class="hljs-title">[</span><span class="hljs-comment">root@node6~</span><span class="hljs-title">]</span> <span class="hljs-comment">mogadm</span> <span class="hljs-comment">domain</span> <span class="hljs-comment">list</span><br /> <span class="hljs-comment">domain</span> <span class="hljs-comment">class</span> <span class="hljs-comment">mindevcount</span> <span class="hljs-comment">replpolicy</span> <span class="hljs-comment">hashtype</span><br /> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-literal">-</span><br /> <span class="hljs-comment">files</span> <span class="hljs-comment">default</span> <span class="hljs-comment">2</span> <span class="hljs-comment">MultipleHosts()</span> <span class="hljs-comment">NONE</span> <br /> <span class="hljs-comment">images</span> <span class="hljs-comment">default</span> <span class="hljs-comment">2</span> <span class="hljs-comment">MultipleHosts()</span> <span class="hljs-comment">NONE</span> <br /><br /><br /></code></pre> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><em style="line-height: 1.6">创建类</em></p> <pre class="prettyprint hljs-light"><code class="hljs haskell">[root@node6~] mogadm <span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">class</span> list <br /> domain <span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">class</span> mindevcount replpolicy hashtype<br /> <span class="hljs-comment">-------------------- -------------------- ------------- ------------ -------</span><br /> files <span class="hljs-default" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">default</span> 2 <span class="hljs-type" style="line-height: 1.6">MultipleHosts</span><span class="hljs-container" style="line-height: 1.6">()</span> <span class="hljs-type" style="line-height: 1.6">NONE</span> </span><br /> images <span class="hljs-default" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">default</span> 2 <span class="hljs-type" style="line-height: 1.6">MultipleHosts</span><span class="hljs-container" style="line-height: 1.6">()</span> <span class="hljs-type" style="line-height: 1.6">NONE</span> </span><br /><br />[root@node6~] mogadm <span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">class</span> add files fulltext <span class="hljs-comment">--mindevcount=1 </span><br /><br />[root@node6~] mogadm <span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">class</span> list<br /> domain <span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">class</span> mindevcount replpolicy hashtype<br /> <span class="hljs-comment">-------------------- -------------------- ------------- ------------ -------</span><br /> files <span class="hljs-default" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">default</span> 2 <span class="hljs-type" style="line-height: 1.6">MultipleHosts</span><span class="hljs-container" style="line-height: 1.6">()</span> <span class="hljs-type" style="line-height: 1.6">NONE</span> </span><br /> files fulltext <span class="hljs-number">1</span> <span class="hljs-type" style="line-height: 1.6">MultipleHosts</span>() <span class="hljs-type" style="line-height: 1.6">NONE</span> <br /> images <span class="hljs-default" style="line-height: 1.6"><span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">default</span> 2 <span class="hljs-type" style="line-height: 1.6">MultipleHosts</span><span class="hljs-container" style="line-height: 1.6">()</span> <span class="hljs-type" style="line-height: 1.6">NONE</span> </span><br /></code></pre> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><em style="line-height: 1.6">上传并查看文件</em></p> <pre class="prettyprint hljs-light"><code class="hljs groovy">[root<span class="hljs-annotation">@node</span>6~] mogupload --trackers=<span class="hljs-number">172.16</span><span class="hljs-number">.1</span><span class="hljs-number">.7</span> --domain=files --key=<span class="hljs-string">'/fstab.txt'</span> --file=<span class="hljs-regexp">/etc/</span>fstab <br />[root<span class="hljs-annotation">@node</span>6~] mogfileinfo --trackers=<span class="hljs-number">172.16</span><span class="hljs-number">.1</span><span class="hljs-number">.7</span> --domain=files --key=<span class="hljs-string">'/fstab.txt'</span><br /> - <span class="hljs-string">file:</span> /fstab.txt<br /><span class="hljs-label"> class:</span> <span class="hljs-keyword" style="line-height: 1.6;font-weight: bold">default</span><br /><span class="hljs-label"> devcount:</span> <span class="hljs-number">2</span><br /><span class="hljs-label"> domain:</span> files<br /><span class="hljs-label"> fid:</span> <span class="hljs-number">2</span><br /><span class="hljs-label"> key:</span> /fstab.txt<br /><span class="hljs-label"> length:</span> <span class="hljs-number">711</span><br /> - <span class="hljs-string">http:</span><span class="hljs-comment">//172.16.1.8:7500/dev2/0/000/000/0000000002.fid</span><br /> - <span class="hljs-string">http:</span><span class="hljs-comment">//172.16.1.9:7500/dev3/0/000/000/0000000002.fid</span><br /></code></pre> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><em style="line-height: 1.6">验证</em></p> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161955-3.png" title="1462368405397465.png" alt="下载 (3).png" /></p> <h2 id="总结" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">总结</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei">MogileFS配置还是很Easy的, 但是分布式理论比配置更为重要, 大家一定要牢记在心! <br />作者水平很低, 如果有错误及时指出, 如果你觉得本文写的好请点一波赞~(≧▽≦)/~</span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px;font-family: 黑体, SimHei"> <br />作者: AnyISaIln QQ: 1449472454 <br />感谢: MageEdu</span></p> </blockquote> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信