ISO1024客户端未正确安装如何正确安装?

您所在的位置: &
MooseFS***教程详解
MooseFS***教程详解
下面我们介绍在Linux平台上一步一步***MooseFS系统的过程,我们假设系统使用mfs用户运行并且mfs的所属组也为mfs。将要使用FHS(文件系统层次标准)兼容路径和源码mfs-1.6.15.tar.gz并且把它放到/usr/src下。我们将要说明怎样***MooseFS系统在不同的专用机上以及怎样在一台服务器上做一个测试***。
MooseFS 在专用机器上的***过程
Master server 的***
Backup server(metalogger)的***
chunk servers 的***
客户端的***
单独server上***MooseFS
MooseFS的基本用法
停止MooseFS
下面我们介绍在Linux平台上一步一步***MooseFS系统的过程,我们假设系统使用mfs用户运行并且mfs的所属组也为mfs。将要使用FHS(文件系统层次标准)兼容路径和源码mfs-1.6.15.tar.gz并且把它放到/usr/src下。我们将要说明怎样***MooseFS系统在不同的专用机上以及怎样在一台服务器上做一个测试***。
MooseFS的最新稳定版下载地址:http://sourceforge.net/projects/moosefs/,并且在客户端你将需要用到FUSE 包,这个包从以下地址下载:http://sourceforge.net/projects/fuse/.
MooseFS在专用机器上的***过程,我们假设我们的机器使用以下的IP地址:
Master&server:&192.168.1.1 &Metalogger&server:&192.168.1.2 &Chunk&servers:&192.168.1.101&和&192.168.1.102 &Users'computer(客户端):&192.168.2.x&
Master server ***
当***master server时我们在./configure禁用chunk server的***(&disable-mfschunkserver)和客户端的***(&disable-mfsmount).我们按以下步骤做:
#groupadd&mfs &#useradd&-g&mfs&mfs &#cd&/usr/src &#tar&-zxvf&mfs-1.6.15.tar.gz &#cd&mfs-1.6.15 &#./configure&--prefix=/usr&--sysconfdir=/etc &--localstatedir=/var/lib&--with-default-user=mfs&--with-default-group=mfs&--disable-mfschunkserver&--disable-mfsmount &#make &#make&install&
示例配置文件将会建立在/etc下扩展名为.dist,我们使用这些作用我们最终的配置文件:
#cd&/etc &#cp&mfsmaster.cfg.dist&mfsmaster.cfg &#cp&mfsmetalogger.cfg.dist&mfsmetalogger.cfg &#cp&mfsexports.cfg.dist&mfsexports.cfg&
如何我们想改变任意设置,应该取消该行的注释然后写一个不同的值.对于注释掉的行,系统将使用内置的默认值.
mfsmaster.cfg 文件包含master server的设置,这里我们没有做任何改变,你能在手册页(man mfsmaster.cfg)了解这个文件的更多信息
mfsexports.cfg文件指定哪个客户端可以挂载MooseFS文件系统并且拥有什么权限.在我们的例子中指定仅仅192.168.2.x的机器能读写MooseFS的整个架构.该文件的第一行,并有这行没有注释我们把星号(*)改变为192.168.2.0/24 因此像下面这样:
192.168.2.0/24&&&&&&&&/&&&&&&&rw,alldirs,maproot=0&
二进制metadata文件和changelog文本文件存放在一个文件夹,该文件夹是在编译期间localstatedir所设置-在我们的例子中这个文件夹是:/var/lib/mfs.首次***会建立一个名字为metadata.mfs.empty的空的metadata文件.我们把这个空文件改变成metadata.mfs:
#cd&/var/lib/mfs &#cp&&metadata.mfs.empty&metadata.mfs&
我们也需要在/etc/hosts 指定主机名mfsmaster和主机IP地址192.168.1.1相对应(译者注:为了在配置文件中用主机名mfsmaster代替IP,做了一次简单DNS解析):
192.168.1.1&&&&&mfsmaster&
现在可以运行master server(server将要使用***时给定的用户运行,在我们的实例中它是mfs):
#/usr/sbin/mfsmaster&start&
在生产环境中应该设置mfsmaster进程在操作系统启动时自动运行
我们现在也可以运行CGI监控在浏览器中查看当前MooseFS系统的状态:
#/usr/sbin/mfscgiserv&
现在可以在http://192.168.1.1:9425/看到一些信息(暂时还没有关于chunk servers的数据)
Backup server(metalogger) 的***
用来***metalogger 的主机,在性能上应该比master 强大(至少有更多的内存)。一旦主控服务器master 失效,只要导入changelogs 到元数据文件,备份服务器metalogger 将能接替发生故障的master,行使管理服务器的职能(关于这个的更多信息可以读http://www.moosefs.org/mini-howtos.html#redundant-master)
Metalogger 的***和master server的***是非常相似的,我们用以下命令:
#groupadd&mfs &#useradd&-g&mfs&mfs &#cd&/usr/src &#tar&-zxvf&mfs-1.6.15.tar.gz &#cd&mfs-1.6.15 &#./configure&--prefix=/usr&--sysconfdir=/etc &--localstatedir=/var/lib&--with-default-user=mfs&--with-default-group=mfs&--disable-mfschunkserver&--disable-mfsmount &#make &#make&install &#cd&/etc &#cp&mfsmetalogger.cfg.dist&mfsmetalogger.cfg&
同样,在/etc/hosts添加:
192.168.1.1&&&mfsmaster&
现在我们准备启动backup server进程:
#/usr/sbin/mfsmetalogger&start&
在生产环境中你应该设置mfsmetalogger自动启动。
Chunk servers 的***
我们用以下的命令在准备去***chunk server的机器上:
#groupadd&mfs &#useradd&-g&mfs&mfs &#cd&/usr/src &#tar&-zxvf&mfs-1.6.15.tar.gz &#cd&mfs-1.6.15 &#./configure&--prefix=/usr&--sysconfdir=/etc &--localstatedir=/var/lib&--with-default-user=mfs&--with-default-group=mfs&--disable-mfsmaster &#make &#make&install&
现在我们同样准备chunk server的配置文件:
#cd&/etc/ &#cp&&mfschunkserver.cfg.dist&mfschunkserver.cfg &#cp&&mfshdd.cfg.dist&mfshdd.cfg&
因为我们的测试***我们没有对mfschunkserver.cfg做任何改变;你能在手册页(man mfschunkserver.cfg)了解这个文件的更多信息。
在mfshdd.cfg文件我们指定具体位置,该位置已经被挂载在硬盘的根(/)分区,建议他们专门用于MooseFS-这是要适当管理空闲空间。
让我们假设将要使用/mnt/mfschunks1 和 /mnt/mfschunks2,因此我们添加这两行到mfshadd.cfg文件:
/mnt/mfschunks1 &/mnt/mfschunks2&
在开始运行chunk server之前我们需要确认用户mfs有写权限在这挂载的分区上(因为需要在这分区上建立.lock文件):
#chown&-R&mfs:mfs&/mnt/mfschunks1 &#chown&-R&mfs:mfs&/mnt/mfschunks2&
同样我们添加下面这行在/etc/hosts:
192.168.1.1&&&&&mfsmaster&
现在我们准备去开始chunk server:
#/usr/sbin/mfschunkserver&start&
在MooseFS系统中,我们在想要存储数据的每一个chunk server 上重复同样的操作。
现在在http://192.168.1.1:9245可以看到系统的全部信息,包括master server和chunk server。
客户端的***
为了挂载基于MooseFS的文件系统,需要客户端***FUSE包(版本至少是2.6,推荐&=2.7.2),如果FUSE不存在,你必须去***它.一种方法是从源码编译它-你能从这个网址得到它
http://sourceforge.net/projects/fuse/:
#cd&/usr/src &#tar&-zxvf&fuse-2.8.3.tar.gz &#cd&fuse-2.8.3 &#./configure &#make &#make&install&
***mfsmount包我做以下步骤:
#tar&-zxvf&mfs-1.6.15.tar.gz &#cd&mfs-1.6.15 &#./configure&--prefix=/usr&--sysconfdir=/etc &--localstatedir=/var/lib&--with-default-user=mfs&--with-default-group=mfs&--disable-mfsmaster &--disable-mfschunkserver &#make &#make&install&
在/etc/hosts文件添加一行:
192.168.1.1&&&mfsmaster&
在客户端机器上假设我们挂载文件系统在/mnt/mfs文件夹.我们使用以下命令:
#mkdir&-p&/mnt/mfs &#/usr/bin/mfsmount&/mnt/mfs&-H&mfsmaster&
现在我们执行df -h | grep mfs 命令以后可以得到类似以下这个信息:
/storage/mfschunks/mfschunks1 &2.0G&&&69M&&1.9G&&&4%&/mnt/mfschunks1 &/storage/mfschunks/mfschunks2 &2.0G&&&69M&&1.9G&&&4%&/mnt/mfschunks2 &mfs#mfsmaster:9421&&&&3.2G&&&&&0&&3.2G&&&0%&/mnt/mfs&
单独server上***MooseFS
如果你想在单独一台机器上测试***MooseFS系统,你可以按照以下步骤,在这我们不***metalogger,假设server的IP地址为192.168.1.1
为了挂载基于MooseFS的文件系统,需要客户端***FUSE包(版本至少是2.6,推荐&=2.7.2),如果FUSE不存在,你必须去***它.一种方法是从源码编译它。
#cd&/usr/src &#tar&-zxvf&fuse-2.8.3.tar.gz &#cd&fuse-2.8.3 &#./configure &#make &#make&install&
***MooseFS:
#groupadd&mfs &#useradd&-g&mfs&mfs &#cd&/usr/src &#tar&-zxvf&mfs-1.6.15.tar.gz &#cd&mfs-1.6.15 &#./configure&--prefix=/usr&--sysconfdir=/etc &--localstatedir=/var/lib&--with-default-user=mfs&--with-default-group=mfs&#make &#make&install&
重要的是最好文件系统能被MooseFS chunks独享,这样能很好的管理空闲空间,MooseFS没有考虑这样的情形:对于MooseFS可用的空闲空间也能被其他数据使用。如果不能建立一个单独的磁盘分区,用文件虚拟一个文件系统,对于这个测试***的需要,我们准备两个2GB的文件(位置在/storage/mfschunks),格式化为ext3格式,并且分别挂载在 /mnt/mfschunks1 和 /mnt/mfschunks2。
#mkdir&-p&/storage/mfschunks &#dd&if=/dev/zero&of=/storage/mfschunks/mfschunks1&bs=1024&count=1&seek=$((2*)) &#mkfs&-t&ext3&/storage/mfschunks/mfschunks1 &#mkdir&-p&/mnt/mfschunks1 &#mount&-t&ext3&-o&loop&/storage/mfschunks/mfschunks1&/mnt/mfschunks1 &#dd&if=/dev/zero&of=/storage/mfschunks/mfschunks2&bs=1024&count=1&seek=$((2*)) &#mkfs&-t&ext3&/storage/mfschunks/mfschunks2 &#mkdir&-p&/mnt/mfschunks2 &#mount&-t&ext3&-o&loop&/storage/mfschunks/mfschunks2&/mnt/mfschunks2&
在开始运行chunk server之前我们需要确认用户mfs有写权限在这挂载的分区上(因为需要在这分区上建立.lock文件):
#chown&-R&mfs:mfs&/mnt/mfschunks1 &#chown&-R&mfs:mfs&/mnt/mfschunks2&
示例配置文件将会建立在/etc下扩展名为.dist,我们使用这些作用我们最终的配置文件:
#cd&/etc &#cp&mfsexports.cfg.dist&mfsexports.cfg &#cp&mfsmaster.cfg.dist&mfsmaster.cfg &#cp&mfschunkserver.cfg.dist&mfschunkserver.cfg &#cp&mfshdd.cfg.dist&mfshdd.cfg&
mfsexports.cfg文件和mfsmaster.cfg 涉及master server的设置,mfschunkserver.cfg和mfshdd.cfg文件涉及chunk server的设置,mfsexports.cfg文件指定哪个客户端可以挂载MooseFS文件系统并且拥有什么权限。在我们的例子中指定仅仅192.168.1.x的机器能读写MooseFS的整个架构,该文件的第一行,并有这行没有注释我们把星号(*)改变为192.168.1.0/24 因此像下面这样:
192.168.1.0/24&&&&&&&&&&&&/&&&&rw,alldirs,maproot=0&
在我们的示例中mfsmaster.cfg和mfschunkserver.cfg文件中的选项没有做任何改变
二进制metadata文件和changelog文本文件存放在一个文件夹,该文件夹是在编译期间localstatedir所设置-在我们的例子中这个文件夹是:/var/lib/mfs.首次***会建立一个名字为metadata.mfs.empty的空的metadata文件.我们把这个空文件改变为metadata.mfs:
#cd&/var/lib/mfs &#cp&&metadata.mfs.empty&metadata.mfs&
也把下面一行添加到/etc/hosts:
192.168.1.1&&&mfsmaster&
此时可以运行master server,CGI monitor和chunk server的进程:
#/usr/sbin/mfsmaster&start &#/usr/sbin/mfscgiserv &#/usr/sbin/mfschunkserver&start&
可以在http://192.168.1.1:9425/看到关于MooseFS系统当前状态的所有信息
现在挂载系统到/mnt/mfs:
#mkdir&-p&/mnt/mfs &#/usr/bin/mfsmount&/mnt/mfs&-H&mfsmaster&
执行df -h | grep mfs 命令以后,我们可以看到类似下面的信息:
/storage/mfschunks/mfschunks1 &2.0G&&&69M&&1.9G&&&4%&/mnt/mfschunks1 &/storage/mfschunks/mfschunks2 &2.0G&&&69M&&1.9G&&&4%&/mnt/mfschunks2 &mfs#mfsmaster:9421&&&&3.2G&&&&&0&&3.2G&&&0%&/mnt/mfs&
MooseFS的基本用法
在/mnt/mfs下建立folder1,在这个文件夹存储的文件有一个副本(setting goal=1):
mkdir&-p&/mnt/mfs/folder1&
建立folder2,在这个文件夹下存储的文件有两个副本(setting goal=2):
mkdir&-p&/mnt/mfs/folder2&
mfssetglal -r 命令设置文件夹的副本数:
#mfssetgoal&-r&1&/mnt/mfs/folder1 &/mnt/mfs/folder1: &inodes&with&goal&changed:&&&&&&&&&&&&&&&&&&&&&&&&&0 &inodes&with&goal¬&changed:&&&&&&&&&&&&&&&&&&&&&1 &inodes&with&permission&denied:&
#mfssetgoal&-r&2&/mnt/mfs/folder2 &/mnt/mfs/folder2: &inodes&with&goal&changed:&&&&&&&&&&&&&&&&&&&&&&&&&0 &inodes&with&goal¬&changed:&&&&&&&&&&&&&&&&&&&&&1 &inodes&with&permission&denied:&&&&&&&&&&&&&&&&&&&&0&
复制一个文件到这两个文件夹:
cp&/usr/src/mfs-1.6.15.tar.gz&/mnt/mfs/folder1 &cp&/usr/src/mfs-1.6.15.tar.gz&/mnt/mfs/folder2&
mfscheckfile 命令检查指定文件存储了几份副本
foler1有一个副本存储在一个chuk:
#mfscheckfile&/mnt/mfs/folder1/mfs-1.6.15.tar.gz &/mnt/mfs/folder1/mfs-1.6.15.tar.gz: &1&copies:&1&chunks&
在foler2的文件mfs-1.6.15.tar.gz 保存两份副本:
#mfscheckfile&/mnt/mfs/folder2/mfs-1.6.15.tar.gz &/mnt/mfs/folder2/mfs-1.6.15.tar.gz: &2&copies:&1&chunks&
附加说明.当所有的进程***在单独的服务器上时,你会看到文件仅仅保存一个副本甚至在设置goal=2时-这是正确的因为尽管有两个硬盘但是只有一个chunk server。
停止MooseFS
按以下步骤安全停止MooseFS集群:
在所有机器上用umount命令卸载文件系统(在我们的示例中是:umount /mnt/mfs):
停止chunk&server进程:&/usr/sbin/mfschunkserver&stop &停止metalogger进程:&/usr/sbin/mfsmetalogger&stop &停止master&server进程:&/usr/sbin/mfsmaster&stop&
【编辑推荐】
CentOS如何***MooseFS技术实战
MooseFS的简介、部署及应用
Moosefs基本概念总结
MooseFS维护技巧集锦
【责任编辑:黄丹 TEL:(010)】
关于的更多文章
分布式文件系统是微软服务器中很重要的一项功能。通过分布式文件
Linux界极具活力,面向不同的用户可以使用不同的Linux发行版,比如适合新手和游戏爱好者等。
10月17日,微软正式发布了Windows 8的首个重大升级—
日前,由51CTO传媒举办的2013年云计算架构师峰会圆满
北京时间10月18日,Ubuntu 13.10(代号为Saucy Salama
本书是一本知识全面、系统、专业的网络工程基础知识必备图书。全书条理清晰、逻辑性强,遵循从全局到细节,从底层基础到高层应用
51CTO旗下网站关于大白菜pe如何***iso的专题
久久健康网编者:大白菜称得上人们冬季餐桌上的“当家菜”,它清淡可口,滋味鲜美,能增进食欲,尤其是在进食肥美佳肴时,适当吃些会使胃口大开。
大白菜pe如何***iso热门问答
Copyright?2000- All Rights Reserved 版权所有 玖玖叁玖网络技术(北京)有限公司 京ICP备号
特别声明:本站信息仅供参考 不能作为诊断及医疗的依据 本站如有转载或引用文章涉及版权问题请速与我们联系下次自动登录
关注移动互联网和移动APP开发工具、开发框架、测试工具、微信开发、Android源码、Android开源类库以及各种开源组件的IT科技网站
现在的位置:
Apk文件如何***到Android模拟器的方法详解
一.如何正确的启动模拟器(早于 1.5的开发版本跳过此步) :
  关于在eclipse里面如何集成android这些问题就不说了,这写问题我想还是不用在这里废话的。要正确的启动模拟,你必须先要创建一个 ***D( Android Virtual Device 虚拟设备 ) ,你可以创建多个***D,但是你的每一个启动了的模拟器都必须有一个***D,这样你才能正确运行。下面是创建***D的语法(关于基本的WINDOWS语法就不赘述了,这都不知道也就不要做开发了) :
  android create avd &target 1 &name myavd (当然你需要在CMD里面使用android提供的/tools)
  上面这个动作完成之后你就可以在eclipse里面启动android模拟器了,其他事情暂时不需要做了。如果你想要直接启动模拟器的话,
  到tools下面双击emulator.exe是行不通的,你必须这样做:
  emulator -avd youravdname (这样才可以正常启动一个模拟器的实例)
  【PS:当然你也可以在eclipse里面通过***D管理器建立***D,那样更方便,但是作为一个基于Linux的,我偏爱Command Line】
  二.关于ADB的基本使用 :
  做android开发的时候adb工具是必不可少的,而且有的时候非用不可。当你在Windows 中 进入android 的tools 之后 只要输入adb 然后就会有一大票的
  命令提示出来,然后你就可以看看,读读,然后你就明白了个一二三,之后呢可以参考android文档,里面说得最好了。而常用的估计是下面
  这几个:
  adb shell 【进入 控制台 , 可以使用一些Linux标准的命令,但是不全,还少东西,晕死,阉割了的】
  adb install 【这个就是***APK镜像文件所需要的命令了,之后会说一些关于使用这个命令的问题】
  adb push 【讲本地文件推送到android模拟器的SD卡里面,等会说如何去创建一个SD卡文件】
  adb pull 【将android模拟器里面的文件保存到本地】
  mksdcard 【语法: mksdcard [-l label] [K|M] 这自然就是创建一个SD卡的镜像了,不过在这个SD ISO里面***的APP只是一个内存映像,也就是说,重启之后还得***】
  好了先这样吧!
  三.如何创建Android SD卡并将文件拷贝到模拟器里面去:
  1. 建立存储镜像: mksdcard 1024MB sdcard.iso 【OK】 如果你还想要给这个SD卡加个label什么的,随便,看看上面的语法就知道了;
  2. 推送本地文件: adb push /sdcard 你需要将文件放在[sdcard]里面,其他地方你是放不进去的。
  比如你这样: adb push hello.jpg / 那么你将得到这么一个结果: adb push (Read only file system)
  如果你试图尝试使用chmod之类的来改变权限,随便吧,那是你的模拟器。但是我不推荐这么做,能不能做到我还没有试过。
  不过我倒是试过在shell下使用./filename.apk的方式来运行apk文件,事实证明这样是不行的。
  改变权限也没有用,因为你推送进去的文件的owner全部是system,而不是root,哈哈。
  3. 【注意】你需要建立SD镜像之后才能adb push进去文件,在你建立sd iso 之前用adb shell 可以看见 sdcard这个文件的夹没有任何操作权限,但是建立完之后就是rw了(就是可读可写);
  4. 如何让模拟器启动的时候加载sd镜像,方法有两种,首先还是command line : emulator -avd avdname -sdcard filename.iso 。在eclipse里面的话就需要在你的运行配置文件夹对话框里面给target加上sdcard参数了。是这样的,打开你的运行配置框,在target这个标签的最下面有个[addtional emulator command line options , 在里面填入 -sdcard filename.iso 就OK 了]
  5. 【上面这些有cmd参与的动作你都可以在eclipse里面完成】
  四.如何在android模拟器中***APK镜像文件:
  1. 在***之前,我建议你打开一个东西,那就是 eclipse 里面的 Google 提供的 DDMS & 很好很强大的工具 。这样打开: window & open perspective & other & DDMS 打开就好了,启动模拟器的时候效果就出来了;
  2. 带参数的启动模拟器: emulator -avd avdname -sdcard filename.iso 【或者eclipse里面直接启动】
  3. 【启动完成之后】到tools里面这样做: adb install filename.apk
  4. 在你做第三步按下回车的时候,请把视线转移到DDMS里面,这里会有很多LOG信息出来,最大化LOG CAT最爽了。一般第一次***的时候你都不会***成功,会有一些小毛病,主要是android的安全控制有点严格,你可以在LOG CAT里面看到,出现红色字符的行一般都是问题所在,对应解决之一般就OK了哦 。 如果使用eclipse开发的话,AndroidMianfest.xml这中东西一般都不会有错。打个签名包就没问题了。
  5. 如果上面你***成功了的话,你就可以在模拟器的桌面里面看到你的程序了,那么现在,all right,enjoy it 。
  6. 卸载: 到 /data/app 里面把你对应的app remove了就OK 了 。 rm filename , 需要在adb shell 里面完成。
【上篇】【下篇】

参考资料

 

随机推荐