posts - 864, comments - 185, trackbacks - 1, articles - 1
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

公告

01 2012 档案

摘要: 多道程序设计:分离进程为独立的功能Unix的最具特点的程序模块化技法就是将大型程序分解成多个协作进程。Unix提倡把程序分解成更简单的子进程,并考虑接口:降低进程生成的开销。提供方法简化进程间通信。提倡使用能由管道和套接字传递的简单、透明的文本数据格式。真正的挑战不是协议语法而是协议逻辑:协议设计既要有充分的表达能力,又能防范死锁。从性能调整中分离复杂度控制在开发出可以把全局复杂度降至最低程度的干净体系之前,关注性能问题便是过早优化。线程提高了复杂度,应尽量少用线程。将程序划分为多个协作进程的另一重要原因是提高安全性:仅信任较少的代码,而让大部分操作都运行在用户级。Unix IPC方法1 把任阅读全文

posted @ 2012-01-31 21:22 feisky 阅读(98) | 评论 (0) 编辑 |

摘要: 透明性,来点光。Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity.透明性是被动品质,可显性是主动任务。透明性:没有阴暗的角落和隐藏的深度;能够预测到程序行为,能够看透机器干什么(整个)。可显性:做什么,怎么做。文档就是为了提高可显性。要必须尽力做到有帮助(具体)。可显性降低进入门槛;透明性则减少代码中的存在成本。研究实例audacit阅读全文

posted @ 2012-01-31 14:28 feisky 阅读(53) | 评论 (0) 编辑 |

摘要: xen支持的块设备1. 物理块设备(Dom0中的物理块设备,如逻辑卷) phy:/dev/cdrom phy:/dev/xenvg/vm12. 磁盘镜像 file:/root/tst.iso(使用loopback) nbd: ip_port (网络块设备) tap:cdrom:/dev/sr0(CD设备) tap:aio:/path/file (blktap) tap:qcow:/mnt/disks/sles10sp1.iso.qcow(QEMU磁盘镜像) tap:vmdk:/mnt/disks/sles10sp1.iso.vmdk(Vmware磁盘镜像)3. ISCSI设备:...阅读全文

posted @ 2012-01-31 11:53 feisky 阅读(187) | 评论 (0) 编辑 |

posted @ 2012-01-18 23:01 feisky 阅读(73) | 评论 (0) 编辑 |

摘要: 换过一个版本的xen之后,重新编译源代码重新启动出现Kernel panic - not syncing: Attempted to kill init!解决办法:initrd镜像没有更新,重新生成下initrd的镜像(针对2.6.18.8的到boot目录下执行如下命令:mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18.8-xen.img 2.6.18.8-xen),再次启动就可以了参考:http://hi.baidu.com/%B0%B5%D4%C2%C1%F7%B9%E2/blog/item/阅读全文

posted @ 2012-01-18 21:29 feisky 阅读(101) | 评论 (0) 编辑 |

摘要: 介绍:NAMExentrace - capture Xen trace buffer dataSYNOPSISxentrace [ OPTIONS ] [ FILE ]DESCRIPTIONxentrace is used to capture trace buffer data from Xen. The data is output in the following binary format (host endian): CPU(uint) TSC(u64) EVENT(u32) D1 D2 D3 D4 D5 (all u32)Where CPU is the processor n..阅读全文

posted @ 2012-01-18 21:17 feisky 阅读(139) | 评论 (0) 编辑 |

摘要: hvm tap vs vifPV虚机只有一个vifX.N,而HVM虚机不安装PV Driver的时候会有两个网络接口vifX.N和tapX.N,而且实际上使用的是tapX.N。HVM虚机安装PV Driver并重启后,tapX.N会消失,使用vifX.N(若不重启还是使用tapX.N)tap interfaces -> qemu-emulated NICs (realtek model by default), usedwhen no PV drivers installed (using OS' own driver for that model)vif interfaces 阅读全文

posted @ 2012-01-18 21:15 feisky 阅读(96) | 评论 (0) 编辑 |

摘要: xen3.4.3源码编译1.Xen Hypervisior安装安装必备软件包# yum groupinstall "Development Tools"# yum install hmaccalc ncurses-devel zlib-devel openssl-devel python-devel \bridge-utils libtool-ltdl iasl xorg-x11-drv-evdev xorg-x11-drv-fbdev \xorg-x11-drv-i810-devel xorg-x11-drv-via-devel xorg-x11-proto-devel 阅读全文

posted @ 2012-01-18 21:02 feisky 阅读(222) | 评论 (0) 编辑 |

摘要: xm create对应的Xen-APIvcpu-list: server.xenapi.VM.get_all() server.xenapi.VM.get_record server.xenapi.VM_metrics.get_record server.xend.domains_with_state(False, 'all', False) server.xend.domain.getVCPUInfo 对power_state过滤,得到最终的b----状态console: console.execConsole(domid) xen.util.auxbin.execute(&阅读全文

posted @ 2012-01-17 21:33 feisky 阅读(308) | 评论 (0) 编辑 |

摘要: XendBootLoader.py:判读bootloader是否存在 Linux:/usr/bin/pygrub Windows: /usr/lib/xen/boot/hvmloade判断 启动设备是否存在,不存在返回:Disk isn't accessible打开一个管道,用于两个pty进程间通信:/var/run/xend/boot/xenbl.%s构造命令并在pty子进程中执行:/usr/bin/pygrub [ --kernel=%s --ramdisk=%s --args=%s --output=%s -q ] path-to-disk如果子进程(执行bootloader)执阅读全文

posted @ 2012-01-17 21:31 feisky 阅读(99) | 评论 (0) 编辑 |

摘要: Domian 0 上运行配置相关的配置文件,运行下面命令: xm create example。进入Domain U 的创建过程;代码级别分析开始:首先对xm命令进行分析,找到xen/tools/python/xen/xm/main.py函数:def main(argv=sys.argv): 首先导入所有命令对应的处理函数:for c in IMPORTED_COMMANDS: commands[c] = eval_r('lambda args: xm_importcommand("%s", args)' % c)def xm_importcommand(c阅读全文

posted @ 2012-01-17 21:23 feisky 阅读(289) | 评论 (0) 编辑 |

摘要: XendDomain.py:10271 _refresh(): Refresh the domain list. Needs to be called wheneither xenstore has changed or when a method requiresup to date information (like uptime, cputime stats). 调用_refreshTxn()刷新运行状态的虚机 调用XendDomainInfo的update方法更新DomainInfo Update with info from xc.domain_ge...阅读全文

posted @ 2012-01-17 21:22 feisky 阅读(159) | 评论 (0) 编辑 |

摘要: 得到进程的pid:ps -ef | grep process_name | grep -v "grep" | awk '{print $2}'查看进程的所有线程# ps mp 6648 -o THREAD,tidUSER %CPU PRI SCNT WCHAN USER SYSTEM TIDroot 0.0 - - - - - -root 0.0 24 - - - - 6648root 0.0 21 - - - - 6650root 1.0 24 - - - - 14214root 0.0 23 - futex_ - - 14216root 0.0 22 -阅读全文

posted @ 2012-01-13 10:43 feisky 阅读(895) | 评论 (0) 编辑 |

posted @ 2012-01-12 23:09 feisky 阅读(65) | 评论 (0) 编辑 |

摘要: 首先介绍一下diff和patch。在这里不会把man在线文档上所有的选项都介绍一下,那样也没有必要。在99%的时间里,我们只会用到几个选项。所以必须学会这几个选项。1、diff--------------------NAMEdiff - find differences between two filesSYNOPSISdiff [options] from-file to-file--------------------简单的说,diff的功能就是用来比较两个文件的不同,然后记录下来,也就是所谓的diff补丁。语法格式:diff【选项】源文件(夹)目的文件(夹),就是要给源文件(夹)打个补丁阅读全文

posted @ 2012-01-12 22:54 feisky 阅读(65) | 评论 (0) 编辑 |

摘要: 创建虚机xm create命令的选项--config (-F) 配置文件的路径-n (--dryrun) config_file 显示python配置文件对应的SXP格式(该文件还会在/var/lib/xend/domains/UUID/config.sxp保存一份,而且/var/lib/xend/domains/UUID/config.sxp保存的配置更为全面。-s (--skipdtd) 忽略XML DTD检测,启动后可减少虚机的创建时间-p (--paused) 创建后不自动启动--vncviewer 自动连接vnc display-c (--console_autoconnect)自动阅读全文

posted @ 2012-01-12 20:33 feisky 阅读(309) | 评论 (0) 编辑 |

posted @ 2012-01-11 22:41 feisky 阅读(133) | 评论 (0) 编辑 |

摘要: 直接上代码:#!/bin/bashfunction usage{ echo "Usage: $0 " echo "e.g. $0 eth0 2" exit 1}if [ $# -lt 2 ];then usagefieth=$1interval=$2in_old=$(cat /proc/net/dev | grep -w $eth | sed -e "s/\(.*\)\:\(.*\)/\2/g" | awk '{ print $1 }' )out_old=$(cat /proc/net/dev | grep -w $e阅读全文

posted @ 2012-01-07 21:00 feisky 阅读(113) | 评论 (0) 编辑 |

摘要: 已经到了2012年元旦的最后一个小时,总结一下过去的2011年。2011年1-2月完成与原签约公司的违约手续(本来10年11月底就提出来的,悲催的拖到了11年2月)2011年3月主要是完成硕士大论文的撰写,以及一篇CCC的文章。2011年4月与现在工作单位的电话面试、签约,并在4月底到公司实习了一段时间,熟悉了公司的产品和基本的代码结构。2011年5-6月一篇文章、硕士论文答辩、毕业。2011年7-8月入职、熟悉产品和代码、熟悉xen。2011年9-12月开始负责云计算平台几个模块的维护、优化和运维。工作的半年,收获颇多,2012我会继续努力。阅读全文

posted @ 2012-01-01 23:36 feisky 阅读(132) | 评论 (0) 编辑 |

无觅相关文章插件,快速提升流量