--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
---
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
我甚至觉得可以尝试要一批配置更好的机器。
@stephen @snullp 能不能说说你们的 “云文件系统” 设想,我记得有个 PDF 的,不过找不到了。另外几年过去了,你们增加了很多经验,之前的想法是否有变化,也说说吧。
* 系统数据主要是只读(或者说在客户端永远只读),服务器成了瓶颈,例如在LUP上大家一起玩PXE的话,PXE的带宽就成了瓶颈,大家的体验全都会变差。对此我想有两种方案可行:- 部署多个服务器,并且在NFS的基础上,能够加上一个load tracker,每个客户端自动选择比较优秀的节点。这样的做法,可扩展性比较差,比如我期望的效果可能是几千人同时在线(整个本科生宿舍都在用),当客户端增加,服务器数量也需要成比例增加。- 做一个p2p的文件系统,所有的客户端都参与分发文件。当时觉得p2p的延迟比较高会是一个文件。不过现在觉得如果有比较好的预取机制的话,效果应该也不会太差。 - 这个p2p的系统需要做许多调优。例如将整个squashfs分成4M(这个数字我随便说的)的chunk,这个chunk作为最小传输单位,即对于一个chunk,只从一个peer取,不再细分,继续细分会导致调度和验证变得复杂。 - 调度时尽量让同子网的人互相通信。- 可以采用p2p+CDN混合机制,设置一个阈值,例如对于一个chunk,在发起peer请求后1 ms内没有开始传输或者N ms内没有完成传输,则自动开始从服务器上下载。
* 系统数据主要是只读(或者说在客户端永远只读),服务器成了瓶颈,例如在LUP上大家一起玩PXE的话,PXE的带宽就成了瓶颈,大家的体验全都会变差。对此我想有两种方案可行:
* 用户数据大家的都是不一样的,可以考虑使用比较成熟的分布式文件系统,例如AFS之类的。- 用户免不了会传一些共同的数据,比如相同的电影,可以考虑文件系统层面支持去重的能力,例如文件系统按hash进行存储,相同的文件只存一份。
系统从网络上启动相比从本地启动有什么优点呢?除了体验一些新的发行版,大多数时候我们还是习惯使用一个或两个操作系统,为什么要每次从网络上启动呢?如果只是为了体验新发行版,几千人同时在线的情况应该不会出现吧。PXE 服务器是千兆网卡还是百兆网卡,多少人同时网络启动时带宽就成了瓶颈?
* 用户数据大家的都是不一样的,可以考虑使用比较成熟的分布式文件系统,例如AFS之类的。- 用户免不了会传一些共同的数据,比如相同的电影,可以考虑文件系统层面支持去重的能力,例如文件系统按hash进行存储,相同的文件只存一份。校内用户的共同数据多吗?应该是规模越大,去除冗余的效果越明显,对百度、迅雷之类的大型公共服务能行,校内的行吗?(瀚海星云存储在做去除冗余这件事,不过似乎用的人不多)
开启 2014年5月26日 at 下午5:52:47, Bojie Li (boj...@gmail.com) 写:
网络启动有这些好处:* 适合用于批量使用同一类型的系统。例如我想有这样的场景:某课程A的实验需要一套环境,该课程助教制作好一个镜像,大家启动这个镜像就可以做进行实验。这个系统可以在实验室应用,也可以在其他地方,例如树华或者寝室,学生可以在任何地方进行实验。
* 可以在不同的地方使用相同的系统,上述场景是一个,这里再说一种场景。许多人并没有自己的电脑,而到公共场合(例如树华)则只能使用给定的系统,每次去都会被还原。但如果可以在任何一台电脑上启动一个相同的系统,并且启动后所有的配置都保留,甚至安装的软件也都保留,那么他就可以在任何能上网的地方使用“自己”的系统了。
我想的使用场景并不仅仅是体验。如果有一天网络启动可以很成熟并且方便的维护,那么不排除这种可能性,学校为每个同学在寝室配置一台电脑,这台电脑没有硬盘,不可以自己安装系统(当然主机箱也可能进行物理封装)。电脑可以从网络启动一个或者若干个专门为学习定制的系统,可以进行各种课程的学习、实验、作业,甚至线上交流等活动。
我觉得这个更取决于这个平台本身如何推广。比如学校的ftp,每个人限制只有300M,因此大家都不会用这个空间来存放大文件,所以大家基本上只是用来存放ppt、小软件、网站等。但是如果给你100G甚至更大的配额,相信很多人都会往上面存电影、系统iso之类的东西了。这些去重效果应该是不错的。甚至如果加上六维离线下载,估计很多人会更乐意使用这个来下,而不是去六维自己拖了。
目前科大云3.0的全虚拟化,已经较为完善,但磁盘仍然是较大的瓶颈,虚拟机一多,IO性能大幅降低。
开启 2014年5月26日 at 下午6:30:10, Zhang Cheng (steph...@gmail.com) 写:
开启 2014年5月27日 at 上午1:17:09, Bojie Li (boj...@gmail.com) 写:
开启 2014年5月27日 at 上午1:21:04, Bojie Li (boj...@gmail.com) 写:
64U 是什么 CPU 型号
抱歉,我简写了。 是指64颗CPU 我记得型号是Core2 T7700
几个 socket
指什么的socket?
有没有开 hyper-threading?
没有
允许挂载远程卷,实际有没有用远程卷?
登陆科大云(cloud.ustc.edu.cn),左侧导航栏进入“申请运资源” -> 点击“EBS管理” -> “创建EBS卷” -> 回到“云主机管理” -> 点击虚拟机右侧的 “+” 挂载刚才创建的EBS卷
当然 还得在系统中初始化磁盘,然后mount
开启 2014年5月27日 at 上午1:29:08, Bojie Li (boj...@gmail.com) 写:
哦,这种需求我设想成在云上开一些虚拟机了,每个人都远程登录到自己的虚拟机上操作。用自己的电脑启动云端存储上的系统可能数据传输量要大一些,但可以节约云端的 CPU 和内存资源。下面先讨论在实验室使用的情况。如果是一个实验室同时使用一个网络操作系统做实验,网络启动的带宽是 P2P 无法彻底解决的(相对网启服务器架设在实验室机房的主控室而言)。因为 P2P 不能认出一个机房里哪些机器是一个交换机底下的,只能认出哪些机器是一个路由器底下的,那么一个机房如果有多台交换机,则大部分 P2P 流量是在不同交换机底下的机器之间的。如果这些交换机采用链状结构,则全部流量的接近 1/4 会通过这条链中间那根网线;如果交换机采用星形结构,情况会好一些,则中心交换机和接入交换机的每根连线要承担一个接入交换机下面的机器产生的大部分流量。假设网启服务器架设在实验室机房主控室里,千兆带宽,50 人同时启动机器,则每个人只能分到 20 Mbps,也就是不到 2.5 MB/s 的下载速度,计算机启动会非常慢。如果采用了 P2P 技术而机房交换机的拓扑结构不够合理,也不容易得到明显的提升,不过假定 P2P 没有额外开销,而且能够合理控制 P2P 连接和回源连接的比例(这些连接是公平争抢链路带宽的),下载速度应该能到 10 MB/s 以上,也许可以接受。但对仍然在使用百兆网络的机房来说,什么优化估计都无济于事了。
这个同时启动同一个操作系统的问题,本质上是多个客户端想同时获取同一个文件的问题。这个问题产生于在线会议系统,最早解决的做法是 IP Multicast,也就是源端只往路由器发一份数据,但路由器把这份数据往局域网的多个端口发送。但这种多播的做法不适用于要求可靠的数据传输,因为要做到可靠就要有应答(ACK),这些 ACK 都回传到源端就会产生经典的 ACK implosion 问题。P2P 技术应运而生,只是多数 P2P 用户并不是同时需要同一份文件,于是大家淡忘了 P2P 起源于直播的历史。由于物理上接近的局域网里很可能没有想要的文件,很多 P2P 系统干脆不考虑网络拓扑结构,而是选取随机的节点。事实上在网络拓扑结构中最适合做 peer 的是路由器,但传统意义上的路由器是不能存储数据的,在教科书里这种端到端的设计原则被称为 “Internet 成功的原因”,潜台词是更优雅的设计由于成本原因被历史淘汰了。现在很多人在研究的 Content-Centric Network,就是让路由器存储转发 URL(可以理解成所有的路由器都是小区缓存),把可靠的数据传输引入 IP Multicast。扯远了,这些 YY 跟网络启动没有关系。
再讨论在树华或者寝室使用的情况。这时就不像一个直播系统,而像 P2P 分享文件的系统了。不过一般的 P2P,用户在下载文件结束后一般会一直做种,而我们的网络操作系统用户一关机就不再做种了,也就是只能在同时开机的同一个网络操作系统用户之间做 P2P。这个效果能有多好我心里没底。
* 可以在不同的地方使用相同的系统,上述场景是一个,这里再说一种场景。许多人并没有自己的电脑,而到公共场合(例如树华)则只能使用给定的系统,每次去都会被还原。但如果可以在任何一台电脑上启动一个相同的系统,并且启动后所有的配置都保留,甚至安装的软件也都保留,那么他就可以在任何能上网的地方使用“自己”的系统了。这个是科大本科寝室没网,或者很多学校大一不允许带电脑导致的特殊需求吧……不过看起来确实挺诱人的。
开启 2014年5月27日 at 上午1:31:37, Bojie Li (boj...@gmail.com) 写:
64U 是什么 CPU 型号抱歉,我简写了。 是指64颗CPU 我记得型号是Core2 T7700
几个 socket指什么的socket?
开启 2014年5月27日 at 上午1:42:57, Zhang Cheng (steph...@gmail.com) 写:
socket
开启 2014年5月27日 at 上午1:44:57, Yifan Gao (ylgao...@gmail.com) 写:
这里说的64颗CPU是在同一块主板上吗?感觉不太真实啊,64颗CPU平铺可能都要比主板大了。。。
这个估计得拆开看看才知道,就外观而言,刀片20多厘米宽,1米多长,不知道能不能放下64U哈
64U 是什么 CPU 型号抱歉,我简写了。 是指64颗CPU 我记得型号是Core2 T7700
几个 socket指什么的socket?
赶紧看看有没有在 KVM 里打开 VT-d 了,如果确实打开了,磁盘性能还是这么差,就用 iostat 看看磁盘请求的 iops,是不是小的随机读写占很大比例。
开启 2014年5月27日 at 上午2:00:49, Bojie Li (boj...@gmail.com) 写:
--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
---
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
假设一个实验室有100台机器,我相信不可能有某一个时间100台机器同时启动,或者100台机器正好都需要同一个文件,但可能会有10台机器要同一个文件,如果10台机器,不考虑交换机限速(假设交换机无限大),这10台机器同时去pxe服务器取数据,假设pxe服务器是1g的网卡,那么每台机器可以有10MB/s的速度。但是如果有p2p,这10台需要相同文件的机器,很可能可以在内网,或者在校园网内得到满足,那么pxe服务器的负载就很小了,而且大家可能会得到很高的下载速度(例如30MB/s)。
大概给一些数据吧,在视频直播领域,p2p的效率可以达到95%以上(即95%以上的带宽是p2p的)。而且视频直播的p2p延迟(这个延迟跟请求文件的延迟还不是一回事,后面再说)要求是比较高的,一般在2分钟以内,如果缩短这个延迟,p2p会下降一些,但也不会下降太多。
我猜测视频直播的 playback lag 高达几十秒,可能是因为客户端加入和退出频道非常频繁,以及每个客户端只缓存马上要播放的和刚播放过的若干秒内容,而不会把所有收到的内容一直缓存着,因此尝试连接一个 peer,它那里不一定有我想要的内容。
我甚至觉得可以尝试要一批配置更好的机器。2014-05-26 18:09 GMT+08:00 Yuanchong Zhu <redsk...@gmail.com>:
能协调好资源就行。直接去找jameszhang吧在 2014年5月26日 下午5:52,Bojie Li <boj...@gmail.com>写道:
Freeshell 磁盘紧张,3 号节点的磁盘已经快满了。少院这 7 台机器作为全校范围的公共服务实在是捉襟见肘。我听说科大云(cloud.ustc.edu.cn)有比较多的硬件资源,也有足够的公网 IPv4 地址池,但由于技术原因服务不太稳定。能不能通过 LUG 指导老师 jameszhang 牵线,我们为科大云提供技术支持,把科大云变得更稳定易用。北京分舵前些天聚会时,几位前辈提到 “取代 FTP 的云文件系统” 这个未竟的愿望,这也需要比较大的存储资源池。功利地说有几个好处:
- 可以把虚拟机用到课堂上,每人一个克隆出来的虚拟机,省去配置开发环境的麻烦。
- 助力校内与互联网相关的创新创业项目。(现在申请机器是个麻烦事)
- 参与科大云平台开发的同学把它写进简历,一定是个加分项。
- 我们 LUG 再也不缺机器和存储空间了。现在我们的资源只够做 LUG 会员范围的服务,如果傍上科大云这个资源池,就能做全校范围的服务了。
接下来的一年我多数时间在学校,可以跟小伙伴们一起把学校的云平台真正搞起来。大家觉得这个想法怎么样?
--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
---
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
灿烂星空,你就是我的英雄!
--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
---
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--Cheng,Best Regards
赶紧看看有没有在 KVM 里打开 VT-d 了,如果确实打开了,磁盘性能还是这么差,就用 iostat 看看磁盘请求的 iops,是不是小的随机读写占很大比例。
我本来想的是开始上课的时候大家都去开机,因为少院机房还是百兆网络的时候,几台机器同时网络启动 XP,有的机器就会卡住,给我留下了心理阴影。假定大家来上实验课不是一拥而入,这个问题就没有了。不过老师指示大家打开同一种软件(比如 Matlab),这种同时载入文件的需求还是存在的吧,而且很难通过预取解决。P2P 方案就算没有 CDN 的帮助,如果块的大小适当,peer 不会轻易下线,肯定比回源(从 PXE 服务器直接取)要快。我只是说采用了 P2P + CDN 优化之后机房同时网络启动的问题能否解决,如果不能解决则机房网络启动本身就是不可行的。我刚才大概算了算,千兆网络 50 台机器问题应该不大。在带宽不是瓶颈的情况下,如果 P2P 算法很理想,从网络启动比本地启动还要快,因为局域网延迟小于磁盘寻道延迟,而且 P2P 可以并行而磁盘只能串行。在少院机房的网络启动部署中遇到一个问题:写入磁盘的差分内容是保存在本地内存还是网启服务器上(不能使用本地硬盘)。最早是保存在网启服务器上的,结果网启服务器的硬盘成了瓶颈。后来改成写入本地内存(类似 tmpfs),但用户会奇怪地发现下载大文件之后或者系统持续运行时间较长后系统会卡死(跟图书馆查询机问题类似)。这个问题不知道 @Zhang Cheng 考虑过没有。
大概给一些数据吧,在视频直播领域,p2p的效率可以达到95%以上(即95%以上的带宽是p2p的)。而且视频直播的p2p延迟(这个延迟跟请求文件的延迟还不是一回事,后面再说)要求是比较高的,一般在2分钟以内,如果缩短这个延迟,p2p会下降一些,但也不会下降太多。这正是我担心的问题。我猜测视频直播的 playback lag 高达几十秒,可能是因为客户端加入和退出频道非常频繁,以及每个客户端只缓存马上要播放的和刚播放过的若干秒内容,而不会把所有收到的内容一直缓存着,因此尝试连接一个 peer,它那里不一定有我想要的内容。我不知道我的猜测对不对。对 P2P 文件系统来说,加入退出(开机关机)倒是不频繁,不过机器的本地内存有限,意味着每个节点对所取内容的缓存(或称做种)是比较短暂的,有点像视频直播里播过一段时间的内容就不再缓存了。这会不会带来较高且不可预测的延迟?
找到一篇 2006 年基于 PPLive 的论文,不知道这些数字在 8 年后的今天是否适用。 A Measurement Study of a Large-Scale P2P IPTV System http://eeweb.poly.edu/faculty/yongliu/docs/streaming_measurement.pdfKosha: A Peer-to-Peer Enhancement for the Network File System 实现了 P2P 的 NFS(可惜没有找到代码),增加的延迟只是 4 个 RTT 左右,测试结果很漂亮。不过这是每个 peer 贡献出相对固定的一块磁盘空间,由 tracker 控制哪些数据放在哪个 peer,感觉跟我们准备搭建的内存 P2P 文件系统不同。Technical Report: http://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1152&context=ecetr&sei-redir=1
(BTW,这篇论文的 motivation 是每台桌面电脑贡献出自己的空闲磁盘空间,在整个学校的范围形成一个大的分布式文件系统,感觉是个不错的想法)
刚才名词看错了,应该是 start-up delay = 用户打开频道到开始播放的时间,也是十几秒的量级吧。playback lag 应该是与视频源之间的时间差吧,这个是几十秒的量级,主要是因为在比较大的 P2P 网络里,视频从视频源分发到用户要经过好几跳,而且这个跳数不确定(因为 peer 是随机选择的)。在我们的 P2P NFS 里关心的应该是 start-up delay。
一台科大云这样配置的物理机器大概要 20000 软妹币吧,搞两个机架的机器,应该不是说给就给,得申请项目吧,学校已经有一个云平台了,再搞一个的可行性你觉得大吗?
--
--
2014-05-27 4:24 GMT+08:00 Bojie Li <boj...@gmail.com>:我本来想的是开始上课的时候大家都去开机,因为少院机房还是百兆网络的时候,几台机器同时网络启动 XP,有的机器就会卡住,给我留下了心理阴影。假定大家来上实验课不是一拥而入,这个问题就没有了。不过老师指示大家打开同一种软件(比如 Matlab),这种同时载入文件的需求还是存在的吧,而且很难通过预取解决。P2P 方案就算没有 CDN 的帮助,如果块的大小适当,peer 不会轻易下线,肯定比回源(从 PXE 服务器直接取)要快。我只是说采用了 P2P + CDN 优化之后机房同时网络启动的问题能否解决,如果不能解决则机房网络启动本身就是不可行的。我刚才大概算了算,千兆网络 50 台机器问题应该不大。在带宽不是瓶颈的情况下,如果 P2P 算法很理想,从网络启动比本地启动还要快,因为局域网延迟小于磁盘寻道延迟,而且 P2P 可以并行而磁盘只能串行。在少院机房的网络启动部署中遇到一个问题:写入磁盘的差分内容是保存在本地内存还是网启服务器上(不能使用本地硬盘)。最早是保存在网启服务器上的,结果网启服务器的硬盘成了瓶颈。后来改成写入本地内存(类似 tmpfs),但用户会奇怪地发现下载大文件之后或者系统持续运行时间较长后系统会卡死(跟图书馆查询机问题类似)。这个问题不知道 @Zhang Cheng 考虑过没有。我相信并发并不会对p2p产生什么坏影响。即使老师让大家同时打开matlab,大家也不可能完全同时,总有几个人先,几个人后,先打开的人(哪怕只早几秒)都可以为后打开的人提供p2p服务。
差分硬盘的事,这确实是大问题,而且没有很好的解决方法,这跟p2p没有关系。p2p尝试解决的是带宽的问题(当然也缓解可能潜在的服务器硬盘读压力)。而硬盘的问题,本来N多设备都有自己的硬盘,现在如果用网络系统时完全不用本地硬盘,那就相当于要将本地硬盘的需求转嫁给其他设备,例如内存、网络硬盘等。我觉得对于机房这个问题还是比较好解决的,可以约定本地硬盘里里提供一块特殊的分区给网络系统做差分存储(甚至p2p的缓存)使用,不过这里的差分内容不提供持久化存储,系统重启即失效。个人电脑就无法做这样的要求了(也可以考虑检测硬盘上是否有swap分区,如果有也可以利用)。但我觉得从大规模服务的角度看,硬盘的问题应该提供一个单独的解决方案,例如提供一个极高吞吐率的存储集群,至于这个东西怎么做,就是另外一个话题了。大概给一些数据吧,在视频直播领域,p2p的效率可以达到95%以上(即95%以上的带宽是p2p的)。而且视频直播的p2p延迟(这个延迟跟请求文件的延迟还不是一回事,后面再说)要求是比较高的,一般在2分钟以内,如果缩短这个延迟,p2p会下降一些,但也不会下降太多。这正是我担心的问题。我猜测视频直播的 playback lag 高达几十秒,可能是因为客户端加入和退出频道非常频繁,以及每个客户端只缓存马上要播放的和刚播放过的若干秒内容,而不会把所有收到的内容一直缓存着,因此尝试连接一个 peer,它那里不一定有我想要的内容。我不知道我的猜测对不对。对 P2P 文件系统来说,加入退出(开机关机)倒是不频繁,不过机器的本地内存有限,意味着每个节点对所取内容的缓存(或称做种)是比较短暂的,有点像视频直播里播过一段时间的内容就不再缓存了。这会不会带来较高且不可预测的延迟?p2p可以做成 不是去找一个peer问他是否有我要的东西,而是问tracker哪些peer有我要的东西,我去问那些peer要。在一个大环境里,通常一个人要的东西总是有peer有的,无论每个peer的缓存多小(我想每个peer至少有100M以上的缓存吧,一个系统使用时常用的文件大小估计也就这个量级)。
找到一篇 2006 年基于 PPLive 的论文,不知道这些数字在 8 年后的今天是否适用。 A Measurement Study of a Large-Scale P2P IPTV System http://eeweb.poly.edu/faculty/yongliu/docs/streaming_measurement.pdfKosha: A Peer-to-Peer Enhancement for the Network File System 实现了 P2P 的 NFS(可惜没有找到代码),增加的延迟只是 4 个 RTT 左右,测试结果很漂亮。不过这是每个 peer 贡献出相对固定的一块磁盘空间,由 tracker 控制哪些数据放在哪个 peer,感觉跟我们准备搭建的内存 P2P 文件系统不同。Technical Report: http://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1152&context=ecetr&sei-redir=1
(BTW,这篇论文的 motivation 是每台桌面电脑贡献出自己的空闲磁盘空间,在整个学校的范围形成一个大的分布式文件系统,感觉是个不错的想法)不明觉历,我确实没找过文章看过。。。所以我不是个搞科研的料。。。
> 我没做过 P2P,实际中 tracker 会实时知道每个 peer 有哪些内容吗?也就是一个缓存的内容被丢弃了,会通知 tracker 吗?这一点我也很好奇。看BT软件似乎是自己通过tracker向每个peer发出请求然后自行判断的。
开启 2014年5月27日 at 上午6:40:37, Bojie Li (boj...@gmail.com) 写:
You received this message because you are subscribed to a topic in the Google Groups "USTC_LUG" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ustc_lug/dHNV1B_FqFM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ustc_lug+u...@googlegroups.com.
开启 2014年5月29日 at 上午6:15:01, Bojie Li (boj...@gmail.com) 写:
主要是原先2.0时代有很多遗留问题没有解决1.虚拟机和数据库不同步
2.有许多无人使用但仍在运行的僵尸机器
3.实名制考虑
4.瀚海星云2.0 和 3.0 虚拟架构调整,如果要解决兼容性问题,需要修改3.0现有的架构
由于科大云无需付费,可以设置三个月内没有 SSH 登录的,自动销毁虚拟机,收回资源。
对于全虚拟化技术,我们无法监控用户运行了哪些进程、是否运行了SSH、是否登陆了SSH、甚至不知道用户是否更换了系统。如果要监控SSH登陆,只能从流量入手,不过解析数据包一方面要考虑CPU能否扛得住、另一方面会引起一些不必要的隐私问题,所以目前3.0的设计是:只在虚拟交换机上监控端口流量大小,但不识别具体内容(虽然技术上可以)。ps:2.0完全不做虚拟机流量监控
我们就不考虑热迁移了,只要用户不丢数据就能接受。虚拟机全部关机,把磁盘镜像 copy 到 3.0 的架构里,都弄好之后虚拟机开机。也就是只要迁移虚拟机的磁盘镜像(比如 LVM 卷)就行了。
这种迁移方案是非常好的,但貌似没有那么多设备可以同时容纳2000个虚拟机数据的备份。另外,节点做原地升级,比较困难
里面还涉及到一些kvm上的问题,这方面我不太清楚
开启 2014年5月30日 at 上午1:55:39, Bojie Li (boj...@gmail.com) 写:
由于科大云无需付费,可以设置三个月内没有 SSH 登录的,自动销毁虚拟机,收回资源。对于全虚拟化技术,我们无法监控用户运行了哪些进程、是否运行了SSH、是否登陆了SSH、甚至不知道用户是否更换了系统。如果要监控SSH登陆,只能从流量入手,不过解析数据包一方面要考虑CPU能否扛得住、另一方面会引起一些不必要的隐私问题,所以目前3.0的设计是:只在虚拟交换机上监控端口流量大小,但不识别具体内容(虽然技术上可以)。ps:2.0完全不做虚拟机流量监控
我们就不考虑热迁移了,只要用户不丢数据就能接受。虚拟机全部关机,把磁盘镜像 copy 到 3.0 的架构里,都弄好之后虚拟机开机。也就是只要迁移虚拟机的磁盘镜像(比如 LVM 卷)就行了。这种迁移方案是非常好的,但貌似没有那么多设备可以同时容纳2000个虚拟机数据的备份。另外,节点做原地升级,比较困难
只要数 22 端口的 TCP 连接所发包的个数,并统计开始若干个包的大小就行了。首先设置一个阈值(比如50个包),如果连接发送了这么多包,就认为 SSH 登录成功了,因为 SSH key 加密码一般最多试四次。如果连接从开始到终止发包的个数小于阈值,就根据每个包的大小判断是否登录成功,因为 SSH 握手和登录阶段每个包的大小基本是固定的,讲起来很麻烦,用 tcpdump 抓抓看就清楚了,注意考虑 ssh 终端、scp、ssh -D 端口转发等情况。
用户使用VNC、Windows OS、修改端口 都会导致这类办法失效。如果要通用,比较理想的还是记录前端控制台网站的last login time,每天固定时间检查并清理。
顺便说一句,总有人用 freeshell 和 ssh -D 搭建代理服务器,这是不允许的,但我一直都懒得管。ssh 终端和端口转发做代理的流量特征是非常不一样的,看用户发往 freeshell 的数据包,如果是终端,用户每敲一个键就是一个包,都是相对固定大小的小包;要是端口转发做代理,比如用来访问网页,一个 HTTP 请求被封在一个 SSH 包里,HTTP 请求肯定不止一个字节吧,数据包比终端的大多了。千万别以为加了密别人就不知道你干坏事了。
至于抓包 CPU 能否扛得住,1Gbps 的网卡 libpcap 应该问题不大,建议用 C 语言写统计连接和包大小的程序。如果嫌性能不够或者想一个 CPU 管 10Gbps,可以看看 netmap(已经是 FreeBSD 的标配,也有 Linux port):
学习了O(∩_∩)O
什么叫“原地升级”?
是我没说清楚。即:在原服务器上升级架构、升级用户配置及目录结构,使之能够运行在新的架构中。这区别于boj所讲的:“磁盘镜像 copy 到 3.0 的架构里”。
开启 2014年5月30日 at 上午5:05:47, Bojie Li (boj...@gmail.com) 写:
只要数 22 端口的 TCP 连接所发包的个数,并统计开始若干个包的大小就行了。首先设置一个阈值(比如50个包),如果连接发送了这么多包,就认为 SSH 登录成功了,因为 SSH key 加密码一般最多试四次。如果连接从开始到终止发包的个数小于阈值,就根据每个包的大小判断是否登录成功,因为 SSH 握手和登录阶段每个包的大小基本是固定的,讲起来很麻烦,用 tcpdump 抓抓看就清楚了,注意考虑 ssh 终端、scp、ssh -D 端口转发等情况。用户使用VNC、Windows OS、修改端口 都会导致这类办法失效。如果要通用,比较理想的还是记录前端控制台网站的last login time,每天固定时间检查并清理。
SSH能够承载的业务有很多,不知只靠包大小统计能否区分。比如:sftp、X-Window-f 、port forwarding、local port forwarding 等。假设freeshell部署了这类port forwarding 监控,会不会把正常数据也给误杀了?或者杀不干净?比如:我的freeshell上部署了一个local port forwarding -L,用于从远程服务器接收中转过来的git(ssh协议)数据(这个应该也算广义的proxy -_-//),但这类流量与git本身的流量特征非常相似,很难区分。端口转发的可以是任何类型的流量,所以很难说“某类”特征的数据包就是代理(如果只考虑一般情况下的http数据比较好搞)。
2014-05-26 18:29 GMT+08:00 Bojie Li <boj...@gmail.com>:
@stephen @snullp 能不能说说你们的 “云文件系统” 设想,我记得有个 PDF 的,不过找不到了。另外几年过去了,你们增加了很多经验,之前的想法是否有变化,也说说吧。当时的想法比较简单幼稚,只对期望的效果有想法,但对具体的实现、可行性都没有做过调研。现在snullp对这方面比较有经验,我再说一下我当初的想法吧,大家可以探讨一下可行性。我当时的想法大致是这样的:* 存储分为两类,用户数据和系统数据。* 用户数据大家的都是不一样的,可以考虑使用比较成熟的分布式文件系统,例如AFS之类的。- 用户免不了会传一些共同的数据,比如相同的电影,可以考虑文件系统层面支持去重的能力,例如文件系统按hash进行存储,相同的文件只存一份。* 系统数据主要是只读(或者说在客户端永远只读),服务器成了瓶颈,例如在LUP上大家一起玩PXE的话,PXE的带宽就成了瓶颈,大家的体验全都会变差。对此我想有两种方案可行:- 部署多个服务器,并且在NFS的基础上,能够加上一个load tracker,每个客户端自动选择比较优秀的节点。这样的做法,可扩展性比较差,比如我期望的效果可能是几千人同时在线(整个本科生宿舍都在用),当客户端增加,服务器数量也需要成比例增加。- 做一个p2p的文件系统,所有的客户端都参与分发文件。当时觉得p2p的延迟比较高会是一个文件。不过现在觉得如果有比较好的预取机制的话,效果应该也不会太差。 - 这个p2p的系统需要做许多调优。例如将整个squashfs分成4M(这个数字我随便说的)的chunk,这个chunk作为最小传输单位,即对于一个chunk,只从一个peer取,不再细分,继续细分会导致调度和验证变得复杂。 - 调度时尽量让同子网的人互相通信。- 可以采用p2p+CDN混合机制,设置一个阈值,例如对于一个chunk,在发起peer请求后1 ms内没有开始传输或者N ms内没有完成传输,则自动开始从服务器上下载。大致就这些想法吧。其实还有许多比较粗略的优化想法,如果真有这样的系统,能做的事情挺多的。--Cheng,Best Regards
最后远程挂载差分磁盘是直接去读中心存储的数据吗?这会不会很低效?
2014-06-03 21:23 GMT+08:00 SJ Zhu <zsj9...@gmail.com>:最后远程挂载差分磁盘是直接去读中心存储的数据吗?这会不会很低效?是的。我没想到更好的方法,因为每个用户的差分内容都可能不相同,只能靠提高中心存储的带宽和 I/O 吞吐量来解决。你有什么办法吗?
--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
---
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
差分部分就不做p2p了呗~
今天写了个 P2P 校园网络启动系统的初步设计,恳请各位多提意见。ftp://lug.ustc.edu.cn/misc/P2P-Network-Booting-System.pdf(放到 LUG FTP 上是不希望被搜索引擎爬到,因为我觉得这个题目是有可能发论文的)(毕设还没搞定的时候写这个,我是不是在作死……)
问题是你怎么知道差分部分在哪里?KVM 如果用差分磁盘的话,每次磁盘读取都会先读取差分磁盘,后读取源磁盘。如果想减少对差分磁盘的读取,只能预取一个类似 bitmap 的东西,表示源磁盘的哪些部分被修改了,一旦 KVM 欲读取的偏移量在 bitmap 中是被修改的,就去读差分磁盘,否则只读源磁盘就够了。bitmap 预取的开销基本上可以忽略,例如源磁盘(系统镜像)5 GB,块大小为 128 KB,则只需要 40 Kbit 的 bitmap,也就是 5 KB。但问题是差分部分会不会很分散,如果每个块里都写了一点,那么 bitmap 所节省的读取就不多了。我们只好再加上一个假设,用户对系统镜像的修改在磁盘存储上是相对集中的……(似乎有点道理)另外如果允许修改系统镜像,就会有用户使用网络启动系统来做日常工作,系统总会变得越来越臃肿,也就是差分部分越来越多,直到很大一部分都要从中心存储去取,这样中心存储的 I/O 和带宽都无法承受。
--
两件事其实各有各的问题。比如kvm,其实问题挺多的,显卡性能不行应该是一个致命的问题。
首先,不用开发内核模块,用 FUSE 就行,block device 可以认为是 FUSE 中的一个文件,客户端性能损失一点问题不大。用 FUSE 纯粹是为了开发简单。
其次,比起每取一块都到中心节点查询一次,我觉得找若干个固定的 peer 获取 bitmap 的方案可能是最好的。5 G 的系统磁盘镜像,128 KB 分块,bitmap 只有 5 KB。就算我连接 100 个 peer,获取 bitmap 也只需读取 500 KB,每分钟更新一次在校园网内根本算不上什么开销。客户端可以把自己的 bitmap 传递给中心节点,让掌握全局 bitmap 的中心节点决定选取哪些 peer,中心节点选取的策略可以很简单:选取那些有最多客户端没有的块的 peer,当然也可以做得更复杂。连接 100 个 peer 都找不到所需要的块,这只能说明这个块太少见了,直接去中心节点取。这种固定 peer 做法的主要缺点是有一定的延迟,在所用带宽一定的前提下,需要在 peer 个数和更新频率间达到平衡。
我没试过,不过物理显卡不可以通过 IOMMU 直接映射进虚拟机吗?IOMMU 就是把物理机的一段 DMA 地址空间映射到虚拟机的一段地址空间的硬件,Intel 叫 VT-d,AMD 叫 HyperTransport,有了这个,虚拟机 DMA 读写显卡就不需要经过虚拟化层。比较新的电脑应该都支持 IOMMU。在显卡方面有什么特殊的吗?
个人建议一开始不要先考虑kvm,而是老老实实的用squashfs+aufs,一步步的来,这个东西搞成熟了再搞kvm。
首先,不用开发内核模块,用 FUSE 就行,block device 可以认为是 FUSE 中的一个文件,客户端性能损失一点问题不大。用 FUSE 纯粹是为了开发简单。
--