magilefs笔记整理

 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

你可能感兴趣的:(图片,分布式,存储,休闲,magilefs)