magilefs笔记整理
时间:2010-10-08 来源:liguxk
magilefs安装笔记
#perl -MCPAN -e shell PATH=/usr/local/mysql/bin:$PATH export PATH cpan install IO::AIO install DBI install DBD::mysql install MogileFS::Server install Gearman::Client install Gearman::Server install Sys::Syscall install Perlbal install Net::Netmask install Danga::Socket install Gearman::Client::Async install MogileFS::Utils install MogileFS::Client 下面说说配置: 搞清楚原理后其实配置起来还是蛮容易的. 第一步,初始化数据库 # mogdbsetup --dbhost=127.0.0.1 --dbname=mogilefs --dbuser=mogilefs --dbpass=mogilefs 第二步,新建tracker配置文件 # vim /etc/mogilefsd.conf db_dsn DBI:mysql:mogilefs:127.0.0.1 db_user mogilefs db_pass mogilefs conf_port 6001 listener_jobs 5 第三步,启动trackers. # adduser mogile # su mogile # mogilefsd -c /etc/mogilefsd.conf --daemon 第四步,初始化storage server数据 # mogadm --lib=/usr/lib/perl5/5.8.8 --trackers=222.191.251.xx:6001 host add mogilestorage --ip=222.191.251.xx--port=7500 --status=alive 检测是否生效: # mogadm --lib=/usr/lib/perl5/5.8.8 --trackers=222.191.251.xx:6001 host list 添加设备到storage server # mogadm -lib=/usr/lib/perl5/5.8.8 -trackers=222.191.251.xx:6001 device add mogilestorage 1 检测是否生效: # mogadm --lib=/usr/lib/perl5/5.8.8 --trackers=222.191.251.xx:6001 device list 第五步,新建Storage配置文件 # vim /etc/mogstored.conf httplisten=0.0.0.0:7500 mgmtlisten=0.0.0.0:7501 docroot=/data/mdata 建立存储目录-> mkdir -p /data/mdata/dev1 第六步,运行MogileFS # mogstored -c /etc/mogstored.conf --daemon 查看你所有的服务都起来没有 # ps -ef | grep mogilefsd # ps -ef | grep mogstored 第七部,测试运行 生成domain # mogadm --lib=/usr/lib/perl5/5.8.8 --trackers=222.191.251.xx:6001 domain add icv.cn 加一个 class 到domain # mogadm --lib=/usr/lib/perl5/5.8.8 --trackers=222.191.251.xx:6001 class add icv.cn type1 1.安装php-mogileFS 扩展 参考,http://projects.usrportage.de/index.fcgi/php-mogilefs 2.写测试文件5 <?php $client->connect('222.191.251.xxx, 6001, 'mogilefs.com'); $client->put('http://www.baidu.com/img/logo-yy.gif', 'myFile', 'type1'); $metadata = $client->get('myFile'); print_r($metadata); $content = file_get_contents($metadata['path1']); echo $content; ?> 3 设备失效时的处理 如果发现某个设备失效了,可以使用mogadm device mark命令标记设备失效.设备不能直接删除,而只能标记失效.设备标记失效后,该设备上的所有文件将重新在其他设备上备份一份.设备被标记失效之后,就不能重新使用了.如果要重新启用设备,MogileFS不会再用设备上原有的文件数据,而重新给设备分配一个新的设备序号,MogileFS也会认为该设备是一个全新的设备. 应注意的几点: 标记失效后的设备不能直接使用原来的设备序号重新用alive激活; 要保证在同一时间内只有一个设备标记失效,否则会产生数据丢失. 4 添加域(Domain)和类(Class) 在MogileFS分布式文件存储系统中,文件通过 KEY 来引用,KEY 在某个存储域下是唯一的.类包含在domain中,可以针对不同的存储类别设置存储不同份数的文件副本.我们添加一个image 域,并为image域添加两个类,一个是large_image,存储分数是2;另一个是thumbnail,存储分数也是2: view sourceprint mogadm domain add image mogadm class add image large_image --mindevcount=2 mogadm class add image thumbnail --mindevcount=2 mogilefs 数据迁移 如果你是要淘汰旧硬盘,启用新硬盘,那只需要将新硬盘以新设备(mogadm device add…)添加到mogilefs中。 然后把旧硬盘上的设备从mogilefs中撤下(mogadm device mark....dead).mogilefs在设备被mark成dead之后,会自动将该设备上所有的副本小于devcount的文件置为待复制状态,并开始寻找合适的设备复制这些文件。 如果要把文件导出存到其它文件系统中,那只能通过tracker了,用脚本根据key将文件一个一个导出 更改设备的优先级 mogadm device modify foo.local 17 --status=alive --weight=10 单台服务器增加设备: 首先要在Storage节点上添加设备,方式是在Storage节点的根存储目录下建立设备目录,设备目录以“dev”开头,后面跟一个数字序号,在MogileFS系统中,要求每个设备的序号是唯一的。根存储目录所在磁盘直接建立设备空目录即可,对其他磁盘则需要挂载到设备目录上。如果其他硬盘已经挂载其他地方,可以建立一个软链接来连接到挂载点上 ln -s /disk2 /var/mogdata/dev11 mogadm --trackers=localhost:6001 device add mogilestorage1 11 mogadm 详细配置请见: http://search.cpan.org/~dormando/MogileFS-Utils/mogadm 管理mogilefs(二) 3. Tracker & Storage Server perl -MCPAN -e shell install Danga::Socket install DBI install DBD::mysql install Net::Netmask install Gearman::Server install Gearman::Client::Async 1 (这一步在vmware虚拟机中可能会失败,原因不明) install IO::AIO install Perlbal For Tracker Only PATH=/usr/local/mysql/bin:$PATH export PATH install Mysql Tracker & Storage Server install MogileFS::Server For Tracker Only install MogileFS::Client install MogileFS::Utils 4. create and init database mogdbsetup --dbhost=192.168.0.21 --dbname=mogilefs --dbuser=mogilefs --dbpassword=mogilefs --yes --verbose 5. Tracker Configuration adduser mogile mkdir /etc/mogilefs vi /etc/mogilefs/mogilefsd.conf db_dsn DBI:mysql:mogilefs:192.168.100.8 db_user mogile db_pass password conf_port 6001 listener_jobs 5 6. Storage Server Configuration adduser mogile mkdir /var/mogdata mkdir /var/mogdata/dev1 (第二台目录为 /var/mogdata/dev2) chown mogile:mogile /var/mogdata/dev1 mkdir /etc/mogilefs vi /etc/mogilefs/mogstored.conf httplisten=0.0.0.0:7500 mgmtlisten=0.0.0.0:7501 docroot=/var/mogdata 7. Starting Storage Servers mogstored --daemon 8. Starting Trackers su mogile mogilefsd -c /etc/mogilefs/mogilefsd.conf --daemon exit add storage server mogadm --trackers=localhost:6001 host add mogilestorage1 --ip=192.168.100.9 --port=7500 --status=alive mogadm --trackers=localhost:6001 host add mogilestorage2 --ip=192.168.100.10 --port=7500 --status=alive check mogadm --trackers=localhost:6001 host list add a device mogadm --trackers=localhost:6001 device add mogilestorage1 1 mogadm --trackers=localhost:6001 device add mogilestorage2 2 check mogadm --trackers=localhost:6001 device list check mogadm --trackers=localhost:6001 check 9. setup domain & class mogadm --trackers=localhost:6001 domain add test mogadm --trackers=localhost:6001 class add test normal 10. test mogtool --trackers=127.0.0.1:6001 --domain=test --class=normal inject error.jsp error.jsp mogtool --trackers=127.0.0.1:6001 --domain=test locate error.jsp 相关阅读 更多 +