5分钟模拟“透明计算”

本课程为本人参加实验楼项目课大赛5分钟模拟“透明计算”课程文档,若需转载请注明出处

透明计算相信大家都听说过,不知道的可自行百度。本实验课是一个科普实验,实验中可以学习到虚拟机及远程桌面基本概念,并自己动手搭建一个模拟透明计算的教学演示环境。

注意事项

  1. 本课只是模拟透明计算的演示效果,形似而已,绝非实现透明计算,毕竟我并不清楚透明计算的具体的技术原理。实验中选用的技术只是用来快速搭建一个通过浏览器访问的远程桌面,与透明计算没有任何关联。
  2. 5分钟是敲命令和环境配置的时间,不含文档阅读时间及受实验楼网络影响的软件下载和虚拟机启动时间。
  3. 本课主要步骤参考爱鸟同学的“15分钟实现透明计算”,感谢爱鸟同学贡献了这么一篇详尽透彻的文章。

实验原理

用虚拟化技术(QEMU)启动一个Linux虚拟机(Tiny Core Linux),然后启动一个web服务(Guacamole)连接虚拟机的VNC桌面,最后达到用户可以通过浏览器访问虚拟机桌面的效果。

参考资料

本课程参考文章及用到的技术:


1. 安装需要的软件

在实验楼的桌面点击Xfce 终端,开始我们的学习旅程。

在打开的命令行窗口中输入下面的命令,因为用到了sudo,会提示你输入密码,实验楼的默认用户是shiyanlou,密码是shiyanlou

# 更新软件仓库
shiyanlou:~/$ sudo apt-get update
[sudo] password for shiyanlou: 此处输入shiyanlou

# 安装guacamole,libvncserver及qemu,其中会询问是否重启tomcat,选择Yes即可
shiyanlou:~/$ sudo apt-get install guacamole-tomcat libvncserver-dev qemu qemu-kvm

# 安装guacamole到tomcat6
shiyanlou:~/$ sudo mkdir /usr/share/tomcat6/.guacamole
shiyanlou:~/$ sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat6/.guacamole/

2. 下载虚拟机磁盘镜像

因为要启动虚拟机,所以我们需要一个虚拟机磁盘。实验楼环境启动大的Linux或Windows镜像时间会比较久,我们选择Tiny Core Linux,当然也可以选择ttylinux等其他的小型系统。

下载链接:http://www.tinycorelinux.net/6.x/x86/release/TinyCore-current.iso

注意:如果觉得输入链接麻烦,可以直接点击桌面上方的剪刀,拷贝到实验环境。

在刚才的Xfce终端中输入下列命令:

# 下载TinyCore最新版ISO镜像,下载时间受实验楼的网络影响
shiyanlou:~/$ wget http://www.tinycorelinux.net/6.x/x86/release/TinyCore-current.iso

3. 启动虚拟机

shiyanlou:~/$ sudo qemu-system-x86_64 -hda TinyCore-current.iso -boot d -no-acpi -vnc :10

这个时候命令会卡住,不用担心,虚拟机已经启动了,打开另外一个Xfce 终端继续下面的命令吧。

命令执行截图:

4. 配置guacamole

编辑guacamole的文件,让这个web服务后台去连接虚拟机的VNC桌面。

编辑命令:

你如果对vim的使用不熟练,可以将命令中的vim替换为gedit,类似windows上的记事本。

shiyanlou:~/$ sudo vim /etc/guacamole/user-mapping.xml

把下面这段文字:

<!--
<authorize username="USERNAME" password="PASSWORD">
    <protocol>vnc</protocol>
    <param name="hostname">localhost</param>
    <param name="port">5900</param>
    <param name="password">VNCPASS</param>
</authorize>
-->

第一行的<!--和最后一行的-->删掉,即去掉了注释。

再把这段文字改为下面的内容:

<authorize username="touming" password="touming">
    <protocol>vnc</protocol>
    <param name="hostname">localhost</param>
    <param name="port">5910</param>
    <param name="password">VNCPASS</param>
</authorize>

编辑完成后的内容:

vim编辑完成后,需要按ESC键,再输入:wq保存文件。

5. 启动服务

# 重启guacamole后台服务及tomcat
shiyanlou:~/$ sudo service guacd restart
shiyanlou:~/$ sudo service tomcat6 restart

6. 测试

双击桌面上的Firefox浏览器,在浏览器中输入链接http://localhost:8080/guacamole,即可访问guacamole的页面,在页面中输入用户名touming及密码touming登录(第4步设置的用户名及密码)。

登录后点击DEFAULT即可进入我们刚刚创建的虚拟机桌面,如果你动作快的话现在可以看到TinyCore的启动画面,点进Web桌面敲下回车系统正式加载启动。

耐心等待1-2分钟,就可以看到TinyCore的桌面在浏览器中显示出来,恭喜你,你已经成功完成了本实验!

登录后的界面:

浏览器里的TinyCore桌面:

7. 后记

或许你还有疑问,我们一一解答:

手机可以访问吗?

只要你的浏览器支持HTML5,不分手机和PC。可以点击实验楼桌面上方的共享桌面按钮,在手机浏览器上打开其中任意一个链接即可体验。

是否可以运行Windows?

理论上可以,但实验楼的环境不够好,建议在自己的电脑上用KVM虚拟化技术尝试。

虚拟机的远程管理怎么实现?

可以使用libvirt API开发对虚拟机的远程管理组件,例如开关机重启等。

自己的电脑上如何搭建?

首先装个Ubuntu 14.04操作系统,剩下的完全按照本实验操作就可以了。

顺便提一句,实验楼应该也是虚拟机,这个实验算是在虚拟机里又虚拟了一层,不过谁知道实验楼环境外面又有多少层,你可能是在虚拟机里的虚拟机里跑虚拟机,像不像盗梦空间

想要体验的小伙伴请点击链接:http://www.shiyanlou.com/courses/172前往体验,欢迎各位大神指教点评!

时间: 2024-10-21 22:27:41

5分钟模拟“透明计算”的相关文章

全面解析划时代的IT技术革命之透明计算

这是我的分布式结课作业............... 想象一下:你打开一台电脑,建立一个新文档,把输入的信息保存到远端的“透明计算服务器”后关机.然后,打开另外一台电脑,输入个人账号登录到“透明计算”界面,轻而易举就能找到之前的信息文档,在此基础上,你还可以继续进行其他操作. 这都是“透明计算”可以带来的便捷.而这背后,离不开中国工程院院士张尧学和团队成员们20余年的潜心研究.2015年1月9日,他们以研究成果“网络计算的模式及基础理论研究”获得国家自然科学奖一等奖. 一.走进透明计算 1.1

体验一把”透明计算&quot;——实验楼试玩

今天打开百度首页看到张教授的"透明计算"已经上了百度搜索风云榜,看到名人方舟子也来凑了个热闹,我也忍不住想来看看这个"透明计算"到底是个什么东西呢?记得人人网的那个博客有说过 实验楼 这个网站,就用了这个技术.那还等什么,果断进去瞧瞧! 1.炫酷狂拽屌的首页 原来这是一个在线教育的网站 进来才发现这是一个在线教育的网站,页面设计看起来还是不错的感觉. 2.注册一下,进来看看. 课程好丰富 这么多的课程啊,看得我眼花缭乱. 3.点一个课程试试 是要点开始实验吗? 都点

11.3.3 用函数模拟延迟计算

在F# 和C# 中计算顺序是提前的:作为给函数参数使用的表达式,在函数自身开始执行之前就计算好了.在C# 和F# 中,我们可以使用函数值模拟延迟计算,另外,F# 甚至有一个专门的关键字,支持延迟计算. 但首先,对于提前计算规则有一个例外,你肯定知道,并经常使用,但只是因为太常用,反而可能没有意识到它的特别.有些特定的C# 运算符,比如,逻辑或(||).逻辑与(&&).条件运算符(?:),以及空合并运算符(null-coalescing,??),能实现短路径(short-circuiting

PAT甲题题解-1088. Rational Arithmetic (20)-模拟分数计算

输入为两个分数,让你计算+,-,*,\四种结果,并且输出对应的式子,分数要按带分数的格式k a/b输出如果为负数,则带分数两边要有括号如果除数为0,则式子中的结果输出Inf模拟题最好自己动手实现,考验细节处理,其它没啥好说的. #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; long long numerato

PAT甲题题解-1081. Rational Sum (20)-模拟分数计算

模拟计算一些分数的和,结果以带分数的形式输出注意一些细节即可 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; /* 模拟计算一些分数的和,结果以带分数的形式输出 注意一些细节即可 */ const int maxn=105; const int maxv=50000

[C语言]模拟人工计算CRC校验码

组成原理课程设计要实现CRC码的生成与校验,然而并不会用硬件实现... 只好先用C写着玩玩,做题还能用上...网原要考的... 例题:要发送的数据为1101011011,CRC生成多项式P(X)=X4+X+1,求应添加在数据后面的余数. 笔算过程: 编程算: 附上小白的代码... 1 #include "stdafx.h" 2 #define DATABIT_LENGTH 10 //数据位数 3 #define GENERATOR_LENGTH 5 //生成多项式位数 4 #defin

JavaScript 时差计算。转换为天数/小时/分钟/秒、计算某个时间到当前时间的差

var oldDate = '2017/02/07 00:00:00'; setInterval(function () { var activeDate = new Date(); var diffDate = activeDate.getTime() - new Date(oldDate).getTime(); // ----------------------- var days = Math.floor(diffDate/(24*3600*1000)); var leave1 = dif

模拟日历计算 poj1008

Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 69932   Accepted: 21524 Description During his last sabbatical, professor M. A. Ya made a surprising discovery about the old Maya calendar. From an old knotted message, profes

大数据流式计算:关键技术及系统实例

孙大为1, 张广艳1,2, 郑纬民1 摘要:大数据计算主要有批量计算和流式计算两种形态,目前,关于大数据批量计算系统的研究和讨论相对充分,而如何构建低延迟.高吞吐且持续可靠运行的大数据流式计算系统是当前亟待解决的问题且研究成果和实践经验相对较少.总结了典型应用领域中流式大数据所呈现出的实时性.易失性.突发性.无序性.无限性等特征,给出了理想的大数据流式计算系统在系统结构.数据传输.应用接口.高可用技术等方面应该具有的关键技术特征,论述并对比了已有的大数据流式计算系统的典型实例,最后阐述了大数据流