-
最新日志
最新评论
- 吴景鹏 发表于《自由软件日——华科站成功举办》
- Twinkle 发表于《Tech Lead, new start~》
- omycle 发表于《91%通过SCSA part2,认证持久战终于结束》
- sacs à main femme 发表于《拿到我心仪的IBM T61》
- 晚点末班车 发表于《自由软件日——华科站成功举办》
存档页
分类
功能
备案/许可证编号
湘ICP备09016480号
Category Archives: IT说吧
如何使用NetBeans开发Jython程序
Jython是什么? 维基百科:Jython程序可以和Java无缝集成。除了一些标准模块,Jython使用Java的模块。Jython几乎拥有标准的Python中不依赖于C语言的全部模块。比如,Jython的用户界面将使用Swing,AWT或者SWT。 Jython可以被动态或静态地编译成Java字节码。 Jython还包括jythonc,一个将Python代码转换成Java代码的编译器。这意味着Python程序员能够将自己用Python代码写的类库用在Java程序里。 可见,Jython是Python和Java的综合体,能直接运行于JVM之一。本文将介绍如何使用NetBeans 6.7进行Jython程序的开发。 首先需要安装NetBeans 6.7,下载地址为http://www.netbeans.org;打开NetBeans,在工具里选择插件,可用插件里可以搜索到python和jython,选中后点击安装即可。 插件安装成功后,会在工具菜单下生成Python Platforms的子菜单项,点击该菜单项,如果像图一这样拥有Jython或Python平台,则说明安装成功。 图一 Python Platform Manager 接下来就可以创建属于自己的工程了,选择文件 > 新建工程,进入以下用户界面,如图二所示: 图二 新建工程 本文用一个FeedReader工程作为Example,通过一个feedreader.py的jython程序来读取rss配置文件的内容,如图三所示: 图三 FeedReader Project 该jython程序的代码如下: from java.net import URL from java.lang import Exception from java.lang import Object from com.sun.syndication.io … Continue reading
如何在xVM克隆基于ZFS的domain
如果你正在使用ZFS作为根文件系统,你就能利用其snapshot快照机制迅速克隆出相同配置的domain。通过对其根磁盘分区进行克隆,你就能轻松地得到多个相似的domain,而它们的主要差别仅仅是使用的存储空间不同而已。本文将介绍如何利用ZFS的clone技术来创建新的 domain。 首先,我们需要关闭正在运行的domain才能进行克隆,以保持硬盘快照的一致性,命令如下: xm shutdown -w dom1 当然,你也可以在domain中运行sys-unconfig命令使新的克隆从重新配置开始。 完成以上操作后,我们就可以使用命令zfs snapshot pool/dom1-root@clone 为dom1的根磁盘分区创建一个快照了,再使用命令zfs clone pool/dom1-root@clone pool/dom2-root来克隆一个可写的snapshot快照。 这时如果你使用zfs list命令,应该能看见新创建的snapshot及clone。接下来,我们需要复制dom1的配置文件。使用如下命令将配置文件copy到一个新的文件: virsh dumpxml domain1 >domain1.xml cp domain1.xml domain2.xml 对copy的配置文件,至少需要作三处改变。 首先,你需要为克隆的domain重命名,若想命名为dom2,则将<name>dom1</name>更改为<name>dom2</name>即可; 其次,你需要删除UUID这一行,从而让virsh为domain生成一个新的配置文件。删除的部分如下: <uuid>78cd98b5e7ab16594fa0cf1260826571</uuid> 接下来,我们需要为domain指定新的磁盘分区: <source dev='/dev/zvol/dsk/export/dom1-root'/>更改为<source dev='/dev/zvol/dsk/export/dom2-root'/> 最后,告诉virsh新domain的存在。 virsh define domain2.xml 这时候,你就可以启动自己克隆的domain了。
让Solaris、OpenSolaris作为xVM的Dom0
Xen是由剑桥大学开发的一个开放源代码的虚拟机管理器,是目前世界上最流行的虚拟机管理器之一,在《Virtualization:Xen and xVM Server》一文中有关于Xen和xVM Server的介绍。Sun公司也推出了自己基于Xen的虚拟化项目xVM,其最根本的区别就是Xen以Linux作为Dom0,而xVM以Solaris或OpenSolaris作为Dom0.本文将介绍如何将Solaris或OpenSolaris配置成xVM的Dom0。 在Solaris 10里已经集成了xVM项目,当你完整安装Solaris 10后,在grub启动时会发现有一个xVM的启动项,这时选择该启动项后Solaris 10就以Dom0的形式运行了。 在OpenSolaris下则需要安装相应的软件包并进行配置,具体过程如下: 如果你的OpenSolaris是build 126或者更新的版本,激活xVM只需要以下几条命令即可: $ pfexec pkg install xvm-gui $ pfexec svcadm enable milestone/xvm $ pfexec reboot 如果是老版本的OpenSolaris,整个安装及配置过程就相对复杂一些。 首先使用命令beadm create -a -d xvm xvm创建一个独立的环境; 接着安装一些相应的软件包,命令如下: $ pfexec beadm mount xvm /tmp/xvm-be $ … Continue reading
让Solaris 10作为zone运行于OpenSolaris
如果dtrace和mdb这些工具运行在OpenSolaris全局zone中,那么这些工具对运行在跑有Solaris 10的zone中的进程来说是无用的,主要是因为Solaris 10和OpenSolaris之间部分调试库的一些不兼容的改变,导致Solaris 10不能作为OpenSolaris的zone正常地运行。同时,由于新版本的OpenSolaris加入了Crossbow等许多非常优秀的特性,让运 行Solaris 10的zone能充分利用OpenSolaris作为全局zone的众多优势,也是非常有必要的。本文将介绍如何解决在OpenSolaris上正常运行 跑有Solaris 10的zone这个技术难题。 解决这个问题最大的难点之一,就是x86平台下Solaris 10的libc对%fs段寄存器的使用。Solaris 10的libc希望X86平台64位处理器的%fs寄存器来存储非0的selector值(如果%fs值为0,那么Solaris 10的_curthread()返回NULL),问题也由此产生了,由于OpenSolaris的内核清空了%fs,而在64位的x86机器上,libc 总是使用%fs来查找当前线程的ulwp_t数据结构,从而使运行Solaris 10的zone不能使用libdoor这些普通的类库和thr_main(3C)等关键libc函数。 整个解决方案比较复杂,因为必须保证在Solaris 10 zone中运行的所有线程开始运行时%fs寄存器的值非零。幸运的是,在Solaris 10和OpenSolaris中只有两个系统调用修改了%fs:SYS_lwp_private和SYS_lwp_create。 SYS_lwp_private是一个libc私有的系统调用,只有在一个进程执行后libc初始化时才被调用一次,用来配置FS段使其段基址在单一线程 ulwp_t结构的开始处。 具体过程如下: 1. Solaris 10的仿真库在s10_lwp_private()实现SYS_lwp_private,它把系统调用传到未改变的OpenSolaris内核,然后调用 thr_main(3C)来测试Solaris10环境下的libc在内核配置%fs后是否运行正常。如果返回-1,那么将调用一个特殊的 SYS_brand系统调用将%fs还原到过去的非零状态。 2. Solaris 10的仿真库在s10_lwp_create()中实现SYS_lwp_create,使得新的线程在 s10_lwp_create_entry_point()而不是在_thrp_setup()中启动。当然,新的线程最终还是必须执行 _thrp_setup(),所以s10_lwp_create()在新线程栈中的预定位置保存_thrp_setup()的地址。 s10_lwp_create_entry_point()调用thr_main(3C)测试当%fs为零时Solaris 10的libc运行是否正常。如果thr_main(3C)返回-1,那么新的线程将调用和s10_lwp_private()一样的SYS_brand 系统调用来恢复%fs。然后,新的线程再从栈中的预定位置读取真正的入口点地址并跳转到入口点。 3. 在运行Solaris 10的zone里保证fork产生的子线程继承其父线程的%fs selector值,从而使父线程即使在调整%fs寄存器后也能保持父子线程的一致性。 4. 同时,还需要考虑对SIGCANCEL等信号的处理,以防止段错误的出现。
聚焦VMworld虚拟化盛会
IT行业独立研究公司TheInfoPro公司最近的实时数据显示,2009年安装的服务器中有50%将采用虚拟化技术,预计到2012年这个比例将增长到80%。可见,虚拟化技术正在以较快的速度增长和普及。 万众瞩目的VMworld虚拟化大会于8月31日 至9月3日在旧金山召开。作为虚拟化领域内的领佳节又重阳导厂商,VMware今年推出了长距离VMotion技术、VMware Go、PCoIP、CapacityIQ与ConfigControl,并开放云端平台与vCenter的API接口,强化第三方软件厂商的支持。其轻松部署虚拟机的vCenter Lab Manager、可显示每个虚拟机账户信息的vCenter Chargeback等产品都让人眼前一亮。VMware公司总裁兼首席执行官Paul Maritz在大会上强调了降低IT复杂性的重要性,对VSphere这款易于管理的、并能很好地降低数据中心复杂性的虚拟化软件给出了很高的评价;VMware首席技术官Stephen Herrod作了题为《虚拟化的未来:从手机到云》的演讲,提出了VMware的移动策略,除了将手机作为瘦客户之外,还可以通过手机管理数据中心,并对手机本身实施虚拟化。其VMware View产品除了可以作为便携终端的瘦客户机之外,还可以作为vCenter的管理终端使用。同时,他还表示VMware将公布实现手机虚拟化的“VMware MVP”(Mobile Virtualization Platform)。 与此同时,开源hypervisor之家Xen.org发布了XCP(Xen Cloud Project),旨在跨广泛的云厂商使虚拟化标准化,为Xen创建一个稳定的、定义好的API,从而加速其在企业和云里的采用。软件巨头微软专为中端市场客户推出了一系列“特殊应用的虚拟化/管理软件以及服务升级”的解决方案,如System Center Virtual Machine Manager技术等。此外,思科与VMware合作,在大会上展示了一项远程实时迁移技术,整个技术可以让远在125英里外的虚拟服务器穿过多个数据中心,从而使企业真正撤离一个数据中心。
在OpenSolaris 2009.06共享ZFS文件系统
ZFS文件系统是由Sun公司开发的第一个128位 的文件系统,也是目前世界上最先进的文件系统,所以被称为“终极文件系统”。由于资源共享已经成为互联网领域的核心内容,服务器及PC机的文件共享也成为 一个非常重要的话题。本文将介绍在OpenSolaris 2009.06上共享ZFS文件系统的几种方式。 第一种方式: 选择 系统 -> 系统管理 -> 共享的文件夹,添加共享目录或文件并以NFS方式共享。 可以通过指定主机名、IP地址、网络等来配置允许访问该共享目录或文件的主机,并可设置主机操作权限为只读或读写。 第二种方式: 使用share命令。 这个命令和在Linux下的使用差不多,在OpenSolaris下使用share命令除了可以共享ZFS文件系统外,还可以共享UFS等其它文件系统。当然,需要修改/etc/dfs/dfstab配置文件。 第三种方式: 使用ZFS命令,这种方式只能共享ZFS文件系统。 ZFS 可以通过使用sharenfs 属性来自动共享文件系统,而不必修改/etc/dfs/dfstab 文件。在sharenfs 属性中,如果sharenfs=on,则由zfs控制其自动共享文件系统。如果sharenfs=off 表示文件系统不由ZFS 管理,就跟普通的文件系统共享方式一样,但可通过传统方法(如/etc/dfs/dfstab 文件)来管理。在引导过程中将共享sharenfs 属性不是off 的所有文件系统。你可以通过命令zfs get all查看所有zfs的属性。ZFS设置共享的命令如下: #zfs set sharenfs=rw=@192.168.203.0/24 rpool/test #share -@rpool/test /test sec=sys,rw=@192.168.203.0/24 ""
ZFS snapshot高级篇之快照备份
ZFS snapshot是OpenSolaris的一个非常强大的技术,它就像Windows的还原点一样,能让你的系统还原到你想要的状态。在《OpenSolaris下的snapshot及基于zfs的系统恢复》一文中,我对snapshot的使用及恢复做了较详细的介绍,本文将介绍如果对snapshot快照进行备份(包括增量备份),从而来保证数据的完整性。 首先通过一个简单的demo来重温一下snapshot的原理: 1. 在rpool存储池中创建一个test文件系统: haiou@opensolaris:~# zfs create rpool/test haiou@opensolaris:~# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 4.52G 1.01G 79.5K /rpool rpool/ROOT 3.84G 1.01G 19K legacy rpool/ROOT/opensolaris 3.84G 1.01G 3.58G / rpool/cifsdemo 99K 1.01G 19K /rpool/cifsdemo rpool/export 698M 1.01G … Continue reading
自由软件日——华科站成功举办
华中科技大学SFD 活动地点:华中科技大学东九楼C401 活动时间:2009年9月21日 19:00~22:00 听众人数:150左右 活动内容及形式:主题演讲+互动问答 演讲嘉宾名单和演讲内容: Speaker 1: 19:00 - 19:40 淮晋阳 发瑞脑消金兽言人简介: 中科红旗教育学院副院长,教育拓展经理,高级讲师 主题:开源–软件的发展趋势 内容:Web2.0、云计算以及开源技术引发的各种变革 Speaker 2: 19:40 - 20:30 蒋海鸥 发瑞脑消金兽言人简介: 华中科技大学计算机学院,集群与网格计算湖北省重点实验室&服务计算技术与系统教育部重点实验室硕士研究生。主要研究方向是虚拟化。 主题: OpenSolaris 2009.06 overview 内容:OpenSolaris中的ZFS、DTrace、xVM虚拟化等独有的技术以及2009.06版本的新特征。 Speaker 3:20:30 - 21:00 张兰 发瑞脑消金兽言人简介: IBM(中国)公司院校合作项目专员,大中华区应用开发商合作部 主题:加入先锋部落,尽展IT精彩人生 内容:IBM公司98年来的发展历程以及IBM教育学院如何与各大高校开展合作。 Speaker … Continue reading
Posted in C/C++/Others
2 Comments
Xenstore简介及Xenstore读写机制的研究与实现
Xenstore是Xen提供的一个域间共享的存储系统(数据库),也可以说它是一个由Domain 0管理的简单的分层操作系统,其作为虚拟机间的中介通信是基于共享内存页与事件通道来实现的。Xenstore中存储了各个虚拟机(包括Domain 0)的配置信息,例如Domain ID,Domain Name,UUID,前后端设备,启动时间,虚拟机状态等。 Xenstore是一个具有层次结构的目录,类似于Linux中的树形目录。Xenstore中存储了Domain之间共享的配置信息,Domain 0作为管理域,可以查看整个结构的内容,而Domain U只能查看自身的信息,这种设计方法提高了Xenstore的安全性。 Xenstore的数据结构与文件系统非常相似。Xenstore只是用于domain间少量信息的传送,并不用于大规模数据的存储。它也保存着正在运行的domain信息,这些信息存储在一个稳定的位置,所以是易读的。 Xenstore中主要有三个路径: /vm – 存储了domain的配置信息 /local/domain – 存储了本地节点的虚拟机信息,类似于Linux的/proc结构 /tool-存储了各种工具的信息 Xenstore提供了访问的接口程序,基本的接口包括两个缓冲环(ring buffer)。关于Xenstore的数据内容更新的Request放在1号环,Response 和状态改变的异步通知被放入2号环。第一个环被domU写入,dom0读出,而第二个环由dom0写入,domU读出。 在Xenstore里,可以使用命令xenstore-read和xenstore-write对数据进行读写。 实现代码如下: #include <stdlib.h> #include <string.h> #include <stdio.h> char buf[100] ; void xenstore_w(char* key, char* value) //将key/value的键值对写入xenstore { char *a … Continue reading
送给所有的朋友,幸福从爱自己开始~
出生一张纸,开始一辈子; 毕业一张纸,奋斗一辈子; 婚姻一张纸,折磨一辈子; 做官一张纸,斗争一辈子; 金钱一张纸,辛苦一辈子; 荣誉一张纸,虚名一辈子; 看病一张纸,痛苦一辈子; 悼词一张纸,了结一辈子; 淡化这些纸,明白一辈子; 忘了这些纸,快乐一辈子! 这周是世界好友周,如果你愿意, 请把这条资讯发给你所有的好朋友(一定遵命)。 也包括我,看多少人会回发给你(君子之交淡如水,又何必计较这 点呢?)。 当大部分人都在关注你飞得高不高时, 只有少部分人关心你飞得累不累, 这就是友情。 再忙,也要照顾好自己, 朋友虽不常联系,却一直惦念。 天凉时记着多穿衣! 世界好友周快乐! 少喝奶茶、不吃刚烤好的面包, 远离正在充电的电源。 白天多喝水,晚上少喝, 一天不喝多于两杯的咖啡。 少吃油多的食物, 最佳睡眠为晚上十点至早上六点。 晚上五点后少吃大餐, 每天喝酒不超过一杯。 不用冷水服胶囊, 睡前半小时服药忌立刻躺下。 睡眠不足八小时人会变笨, 有午睡习惯的人不易老。 手机电池剩一格时不要打电话, 剩一格时辐射是平时的一千倍。 要用左耳接电话, 用右耳会直接伤害到大脑。 2009新概念 一个中心:一切以健康为中心。 两个基本点:遇事潇洒一点,看世糊涂一点。 … Continue reading