zoukankan      html  css  js  c++  java
  • 分布式文件系统 Mogilefs 安装步骤

    我这里的环境都是 RHEL 5 的环境。

    MySQL 数据库 和 tracker 都放到一台服务器上, 为 192.168.2.85

    storage server两台, 分别为 192.168.2.98          192.168.2.222

    第一:    安装 Mysql 数据库

    Mysql的安装请大家直接下载 rpm 安装包最方便, 下载源码安装也很简单。我这里是使用 rpm 包安装。

    安装完毕后使用命令   service  mysql  start  启动

    启动后使用mysql的客户端进入     mysql  -uroot  -p   , 然后回车, 默认空密码, 接着回车进入到mysql的控制台。

    我们把mysql的访问密码修改为 111111

    修改命令为 :

    use  mysql;

    update user set Password=password('111111')   where  user='root';

    quit;

    然后把mysql 重新启动。

    service  mysql  stop

    service  mysql  start

    第二 :  安装依赖包

    执行命令 : perl -MCPAN -e shell   进入 perl 依赖包安装模式

    install Danga::Socket
    install DBI
    install Net::Netmask
    install Gearman::Server
    install Gearman::Client::Async 
    install IO::AIO
    install Perlbal

    install Mysql

    install MogileFS::Server

    install MogileFS::Client
    install MogileFS::Utils

    上述依赖包全部安装完毕后退出。

    找到DBD模块所在的目录,我的目录为   /root/.cpan/build/  , 这个目录是上面安装时下载的各种依赖包。

    cd  DBD-mysql-3.0008

    perl Makefile.PL  --libs="-L/usr/lib64/mysql -lmysqlclient -L/usr/lib64 -lz " --cflags=-I/usr/include/mysql  --mysql_config=/usr/bin/mysql_config  --testhost=127.0.0.1 --testdb=test --testuser=root --testpassword=111111

    make

    make test 

    make install

    第三: 建立数据库和创建表

    进入mysql 的控制台   mysql  -uroot -p111111  , 执行下面的命令

    # mysql

    mysql> CREATE DATABASE mogilefs;
    mysql> GRANT ALL ON mogilefs.* TO 'mogile'@'%';
    mysql> SET PASSWORD FOR 'mogile'@'%' = OLD_PASSWORD( '111111' );
    mysql> FLUSH PRIVILEGES;
    mysql> quit

    然后再执行下面的命令创建表

    mogdbsetup --dbhost=127.0.0.1 --dbname=mogilefs --dbuser=root --dbpassword=111111 --yes --verbose

    第四 : 配置 tracker 的配置文件

    用 root 用户执行

    adduser mogile

    mkdir /etc/mogilefs

    [plain] view plain copy
     
    1. <span style="font-size:18px;">[root@redhat1 mogilefs]# vi /etc/mogilefs/mogilefsd.conf   
    2.   
    3. # Enable daemon mode to work in background and use syslog  
    4. daemonize = 0  
    5. # Where to store the pid of the daemon (must be the same in the init script)  
    6. pidfile = /var/run/mogilefsd/mogilefsd.pid  
    7. # Database connection information  
    8. db_dsn = DBI:mysql:mogilefs:host=127.0.0.1  
    9. db_user = root  
    10. db_pass = 111111  
    11. # IP:PORT to listen on for mogilefs client requests  
    12. listen = 192.168.2.85:7001  
    13. # Optional, if you don't define the port above.  
    14. conf_port = 7001  
    15. # Number of query workers to start by default.  
    16. query_jobs = 10  
    17. # Number of delete workers to start by default.  
    18. delete_jobs = 1  
    19. # Number of replicate workers to start by default.  
    20. replicate_jobs = 5  
    21. # Number of reaper workers to start by default.  
    22. # (you don't usually need to increase this)  
    23. reaper_jobs = 1  
    24. # Number of fsck workers to start by default.  
    25. # (these can cause a lot of load when fsck'ing)  
    26. #fsck_jobs = 1  
    27. # Minimum amount of space to reserve in megabytes  
    28. # default: 100  
    29. # Consider setting this to be larger than the largest file you  
    30. # would normally be uploading.  
    31. #min_free_space = 200  
    32. # Number of seconds to wait for a storage node to respond.  
    33. # default: 2  
    34. # Keep this low, so busy storage nodes are quickly ignored.  
    35. #node_timeout = 2  
    36. # Number of seconds to wait to connect to a storage node.  
    37. # default: 2  
    38. # Keep this low so overloaded nodes get skipped.  
    39. #conn_timeout = 2  
    40. # Allow replication to use the secondary node get port,  
    41. # if you have apache or similar configured for GET's  
    42. #repl_use_get_port = 1</span>  



    执行如下命令来启动

    su  mogile

    [mogile@redhat1 mogilefsd]$ mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon
    [mogile@redhat1 mogilefsd]$ ps -aux|grep mogilefsd  查看是否启动 mogilefsd 成功

    第五:配置 storage server 的配置文件

    adduser mogile
    mkdir /var/mogdata
    mkdir /var/mogdata/dev1   (第二台目录为 /var/mogdata/dev2)
    chown mogile:mogile /var/mogdata/dev1
    mkdir /etc/mogilefs

    [html] view plain copy
     
    1. <span style="font-size:18px;">[root@localhost mogilefs]# vi /etc/mogilefs/mogstored.conf   
    2.   
    3. maxconns = 10000  
    4. httplisten = 0.0.0.0:7500  
    5. mgmtlisten = 0.0.0.0:7501  
    6. docroot = /var/mogdata  
    7. </span>  


    执行如下命令来启动

    找到 MogileFS-Server-2.51 所在的目录,我的为 /root/.cpan/build/

    cd  MogileFS-Server-2.51

    perl Makefile.PL

    make

    make test

    make install

    然后启动storage server 

    [root@localhost MogileFS-Server-2.51]# mogstored --daemon
    [root@localhost MogileFS-Server-2.51]# ps -aux|grep mogstored

    第六:添加 storage 服务器到 tracker服务器进行记录

    切换到 tracker 服务器 192.168.2.85

    执行如下命令

    mogadm --trackers=192.168.2.85:7001 host add mogilestorage1 --ip=192.168.2.98 --port=7500 --status=alive

    mogadm --trackers=192.168.2.85:7001 host add mogilestorage2 --ip=192.168.2.222 --port=7500 --status=alive

    添加完毕后使用下面的命令来检查添加的结果

    mogadm --trackers=192.168.2.85:7001 host list

    下来添加硬盘设备让tracker服务器进行管理

    mogadm --trackers=192.168.2.85:7001 device add mogilestorage1   1

    mogadm --trackers=192.168.2.85:7001 device add mogilestorage2   2

    执行如下命令 来查看添加的结果

    mogadm --trackers=192.168.2.85:7001 device list 

    还可以执行如下命令来查看详细的硬盘资料

    mogadm --trackers=192.168.2.85:7001 check

    添加测试域的命令如下

    mogadm --trackers=192.168.2.85:7001 domain add testdomain

    mogadm --trackers=192.168.2.85:7001 class add testdomain normal

    mogilefs 文件系统是与API的形式提供给客户端使用的, 你需要通过自己的代码来集成API。

    有第三方封装的PHP的, Java的, RUBY的, PERL的。

    我打算使用perl + fuse 的方式来使用, 但是 perl的fuse模块无法编译过去,晕死了。

    遇到了这样的错误:

    Fuse.xs:43: error: expected specifier-qualifier-list before 'tTHX'

    http://blog.csdn.net/langeldep/article/details/6637517

  • 相关阅读:
    leetcode1161 Maximum Level Sum of a Binary Tree
    leetcode1162 As Far from Land as Possible
    leetcode107 Binary Tree Level Order Traversal II
    leetcode100 Same Tree
    spring常用注解的使用
    内部bean和级联属性的用法
    spring中ref标签的用法
    spring的依赖注入
    spring中的bean标签详解
    spring中BeanFactory和ApplicationContext的区别
  • 原文地址:https://www.cnblogs.com/findumars/p/5702177.html
Copyright © 2011-2022 走看看