****************************************************************************************************************
放在前面说明吧:
发了这篇博客之后,陆续有人私信我问关于Planetlab的问题。
我平时不太看私信的,有些私信可能隔好几天才看得到。
建议大家直接在评论区说就好,我回复的会及时一些。
2017.9.4
*****************************************************************************************************************
总结了一下之前做的一个实验测试。
主要围绕Planetlab平台进行,遇到过不少磕磕绊绊的地方,也花了很多时间和精力去解决。下面进行一些总结,如果后期有同道们也接触到这些问题,可以作为参考。
Planetlab是一个分布于全球的计算机群项目,始于2003年,对研究人员而言使用PlanetLab的好处是:他们能够在真实世界条件下大规模地进行试验测试,也是开发全新互联网技术的开放式全球性测试平台。本次我采用这个平台是用来测试真实的互联网条件下的网络带宽。当然,为了保证其他用户不受干扰,长时间对网络带宽进行探测在Planetlab是被明令禁止的,所以测试的单位时间不能太大。
Planetlab有自己的注册页面,直接在上面填上信息注册就好,运气好的话你可能就一次成功了。我最开始的时候在Planetlab注册账号非常不顺利(对于免费项目要求也不能太多),后来通过联系北大节点的管理员周老师进行了注册,为保证个人隐私,不公布周老师的联系方式,不过大家以后需要的话可以跟我要。
成功注册账号后,第一件要做的事情是创建公私钥并上传公钥:在你本地的unix系统(一搬就用ubuntu就行了)中执行:
ssh-keygen -t rsa -f ~/.ssh/id_rsa
会在~/.ssh/id_rsa目录下生成一个公钥一个私钥,在Planetlab网站的登陆账号后的My Account目录下点击上传公钥即可。注意公钥的开头格式必须是ssh-rsa AAAAB3Nza...否则需要自行转换。
公钥中的最后的字符串说明了需要的权限!!!这点一定注意,会影响到你登陆是采用的账号权限限制。
成功上传公钥后,自行在node中添加slice,在这个过程中,节点状态是红色的boot...或者蓝色的boot都是可以添加的,不要被红色骗了。当然,添加的节点能否成功连接上需要自己挨个试,最后只要自己留下能够成功连接的节点就好了。值得注意的是,有些节点的操作系统是Fedora 8的,还有些是CentOS 6,大家根据需求可以针对性的选取。连接节点的命令如下:
ssh -l princeton_test1 -i ~/.ssh/id_rsa planetlab-1.cs.princeton.edu
其中,用自己的slice名称(在My Account里可以查到)替换princeton_test1,用私钥的路径名替换~/.ssh/id_rsa(一般默认情况下就是这个),用你想连接的节点名称或ip替换planetlab-1.cs.princeton.edu。记住,这个命令一定要在生成私钥的相应的权限用户下操作,不然会连接失败。
成功连接后命令行会显示让你再输入一次创建密钥时的密码(这个密码是针对私钥访问的密码),才能成功登陆节点。如果嫌麻烦,可以进行如下操作取消输入密码的步骤:
#在终端下输入
ssh-keygen -p。
#系统会提示选择需要修改的私钥,默认/home/username/.ssh/id_rsa。
#选好文件后按回车,会提示你输入旧密码。
#输入好后会提示输入新密码。
#直接回车,提示确认新密码再直接回车,此时指定的私钥的密码就被清除了。
完成了上述两步后,你应该可以成功的连接到Planetlab的节点了,会进入到一个命令行操作系统。我们可以先查看系统的版本和内核:
#查看fedora版本:
cat /etc/issue
#查看内核版本:
uname -r
Planetlab提供的初始系统非常干净,几乎所有的东西都需要自己进行安装。而且Planetlab还屏蔽了某些软件,比如iperf,所以需要自己从上传安装包,再在节点的系统中进行本地安装。
这里提供几个传输文件的命令:
#本地传输到Planetlab:
scp -i ~/.ssh/id_rsa -r 路径/文件名 slice名@节点名:
#Planetlab传输到本地:
scp -i ~/.ssh/id_rsa slice名@节点名:路径/文件名 本地路径
举个栗子:将本地的iperf安装包上传到上交节点并安装:
scp -i ~/.ssh/id_rsa -r /home/bert/Desktop/iperf-2.0.1-1.2.el4.rf.i386.rpm pku_icst@planetlab-1.sjtu.edu.cn:
#安装执行(在远端执行):
rpm -Uvh iperf-2.0.1-1.2.el4.rf.i386.rpm
这些就是针对Planetlab的一些总结,这个平台的相关资料网上其实很少,当时摸索的也比较辛苦。最重要的是,里面的系统简直是古董级,内核非常陈旧,很多东西都不太好操作。如果大家为了方便起见,直接把自己的算法变成执行程序,这样测试最好的。