技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

压箱底的经验:VMware虚拟机上安装Linux系统

VMware这东西以前用过一段时间,但隔的时间久了,又变得生疏起来,遇到了一些新问题,试验了几次,又在网上找了一些有用的信息,总算安装成功了,总结一下安装中应该注意的问题。1、VMware 的安装和设置 ... 全文

VMware虚拟机

微软与VMWARE的桌面虚拟化对比

一、VDI作用简要说明对VDI更多的理解和作用还是请用GOOGLE吧。或是去微软或VMWARE的官方站点。1、通过 Virtual Desktop Infrastructure,企业可以使用虚拟化技术在数据中心以虚拟机形式托管桌面。2、用户可以使用远程显示协议从 PC 或瘦客户端进行访问。二、理解微软的桌面虚拟化解决方案微软的桌面虚拟化主要有两个方面:... 全文

微软 VMWARE 桌面虚拟化

华为与 VMware:软硬结合、虚实镶嵌的创新

近日,华为与VMware强强联合,在数据中心领域展开了全方位的深度合作,包括联合方案开发、品牌宣传及市场拓展等各个领域。华为数据中心网络与VMware云平台、虚拟化平台开放对接,实现业务和资源的自动化部署。“Overlay”联合创新:Hybrid Fabric网络虚拟化方案... 全文

华为 VMware

调整vmware虚拟机硬盘空间大小

第一步:cmd;第二步:cd到VMware安装目录(本人使用的Workstation,目录为D:\Program Files\VMware\VMware Workstation),第三步:确认vmware-vdiskmanager.exe文件存在,输入 ../>vmware-vdiskmanager.exe -x 50GB "...\...\XXX.vmdk"  提示“Grow x% done”,开始。。。。 参考:... 全文

vmware 虚拟机 休闲 职场

VMware Viw4桌面应用(续)

8)、选择源XP虚拟机系统作为基础模板,如下图,按”Next>”继续。9)、选择源XP虚拟机系统某一时间点的快照,按”Next>”继续。... 全文

VMware 应用 休闲 职场

听VMware高层介绍桌面虚拟化

想听听IT高层对桌面虚拟化的理解?强烈建议大家看看由VMware 最终用户计算部门总裁Chris Young 为大家展现的VMware View 5 桌面虚拟化解决方案。如果你对桌面虚拟化的场景,益处还不了解,相信本视频会让你醍醐灌顶。... 全文

职场 视频 休闲 vmware view

安装VMware出现25009错误

1、你当前登录的用户,不是系统管理员(就是Administrator或者是加入到Administrators组的用户) 2、你安装VMware Workstation所在的分区,设置NTFS权限,而当前的NTFS权限,不允许你当前登录的用户有“写”或者“修改”权限。 另外,你在把你的情况详细说一下: 1、操作系统是Windows XP Professional还是home 2、你磁盘的文件系统是NTFS还是FAT32?如果是NTFS,是否设置了权限 3、你当前登录的用户是什么?是不是系统管理员 4、你在安装好系统后,有没有安装软件?主要安装了那些软件?是不是安装了某个软件后,就不能安装VMware Workstation了? 5、在注册表中删除有关VMware的所有项 等等。。。。 以上方法都没解决问题,更多的人干脆说重装系统,但我觉得没必要,工作量太大了,从错误提示来看应该是无法将__vmware_user__用户加入__vmware__组,估计可能是注册表sam出有错,于是这般操作。 a、先在用户管理中把__vmware_user__用户和__vmware__组删除掉, b、再进入注册表,把HKEY_LOCAL_MACHINESAMSAM加上编辑权限,按f5刷新 c、进入HKEY_LOCAL_MACHINESAMSAMDomainsAccountAliases中,注意00000xxx的项,每一个项对应一个组,如果这些项的数量跟HKEY_LOCAL_MACHINESAMSAMDomainsAccountAliasesNames中组的数量不一样,就要一一将00000xxx项中的c数据值打开,看看右边是不是有__vmware__之类的信息,如果有就将此项删除。 d、把HKEY_LOCAL_MACHINESAMSAMDomainsAccountAliasesNamesMembers下面S-1-5-21-xxxxxx之类的也删除掉吧。 e、也检查一下HKEY_LOCAL_MACHINESECURITYSAMDomainsAccountAliases键值下的数据吧。 删除干净后,一般就可以解决250009错误了。不过为了以防万一,最好先备份一下注册表。 ... 全文

VMware 休闲   职场 25009错误

Gentoo_install_on_VMware~

20090214_by&Frost参考:http://www.gentoo.org/doc/zh_cn/handbook/handbook-x86.xml情人节—还是陪我宝贝电脑过,很无聊的发现尝试在VMware上安装GenToo时,总是报乱78糟的错误、、、烦!、、、发现有时候自己真的废话好多、、、却在该说的时候总不说出口。悲ing~~~朋友总是建议写点blog、、、觉得更是无聊+无聊。。。。。。。以上纯属本人牢骚首先down下liveCD ISO镜像VMware VM􀃆CD-ROM􀃆Use ISO image启动VMware F2选择BOIS 光盘启动进入系统 配置root密码,启用sshd # 为了方便从宿主机连接配置网络 ifconfig eth0 。。。。(略)# 需要连接公网创建分区 (略)# 见官方/dev/sda1 /boot ext3 defaults,noatime 1 2/dev/sda2 none swap sw 0 0/dev/sda3 / ext3 noatime 0 1!!!注意,kernel-2.6.27似乎把ext2 忽略了,所以建议 /boot 分区选用ext3,很奇怪的是居然最后也能启动系统,却在启动进度能看到无法识别的文件系统,不爽、、、安装GenToo 官方文件确认系统日期正确# cd /mnt/gentoo下载 Stage3 文件# links http://www.gentoo.org/main/en/mirrors.xml解开stage# tar xjfp stage3-*.tar.bz2安装 portage 快照# links http://www.gentoo.org/main/en/mirrors.xml# tar xfj portage-latest.tar.bz2 –C /mnt/gentoo/usr设置 /etc/make.conf # 没觉得有多大用,默认&&跳过选择镜像站点,需要从上面同步东东的,所以选择近点的服务器GENTOO_MIRRORS变量# mirrorselect -i -o >> /mnt/gentoo/etc/make.confRSYNC 镜像站点# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.confcp DNS 信息 cp /etc/resolv.conf /mnt/gentoo/etc挂载/proc和/dev文件系统,进入新系统 # 官方原话将/proc文件系统挂载到/mnt/gentoo/proc,这样chroot后的环境里安装时也可以获取内核提供的相关信息,然后以bind方式挂载/dev文件系统。代码 1.4: 挂载/proc和/dev# mount -t proc none /mnt/gentoo/proc# mount -o bind /dev /mnt/gentoo/dev代码 1.5: chroot到新环境里# chroot /mnt/gentoo /bin/bash# env-update>> Regenerating /etc/ld.so.cache...# source /etc/profile# export PS1="(ch) $PS1"更新Protage树 # 没耐心等,跳过# emerge –sync选择正确的Profile # 继续跳过配置USER 变量# nano –w /etc/make.confUSE="-gtk -gnome qt3 qt4 kde dvd alsa cdr"制定 locale 设置 UTF 支持# nano –w /etc/locale.genen_US ISO-8859-1en_US.UTF-8 UTF-8设置时区信息# cp /usr/share/zoneinfo/GMT /etc/localtime安装源码# emerge gentoo-sources配置内核!! (关键)# cd /usr/src/linux# make menuconfig选择正确的处理器类别Processor type and features --->(Change according to your system)(Athlon/Duron/K7) Processor family选择需要的文件系统File systems --->Pseudo Filesystems --->[*] /proc file system support[*] Virtual memory file system support (former shmfs)!!! ext3 reiserfs 什么的自己选了启用SMP支持Processor type and features --->[*] Symmetric multi-processing support注意: 在多核心系统中,处理器的数目相当于核心的数目。启用USB接口的输入设备支持Device Drivers --->[*] HID Devices---><*> USB Human Interface Device (full HID) supportLoadable module support --->[*] Enable loadable module support[*] Module unloading[*] Automatic kernel module loadingBus options (PCI etc.) --->[*] PCI Support[*] ISA SupportDevice Drivers --->Fusion MPT device support ---><*> Fusion MPT (base + ScsiHost) driversOR<*> Fusion MPT ScsiHost drivers for SPI [kernel 2.6.13]Device Drivers --->SCSI device support ---><*> SCSI device support<*> SCSI disk supportSCSI low-level drivers ---><*> SYM53C8XX Version 2 SCSI supportDevice Drivers --->SCSI device support ---><*> SCSI device support<*> SCSI disk supportSCSI low-level drivers ---><*> BusLogic SCSI supportDevice Drivers --->ATA/ATAPI/MFM/RLL support ---><*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support<*> Include IDE/ATAPI CDROM support[*] PCI IDE chipset support[*] Generic PCI bus-master DMA support<*> Intel PIIXn chipsets supportFile systems --->CD-ROM/DVD Filesystems ---><*> ISO 9660 CDROM file system support[*] Microsoft Joliet CDROM extensionsNetworking --->[*] Networking supportNetworking options ---><*> Packet socket<*> Unix domain sockets[*] TCP/IP networkingDevice Drivers --->Network Device support --->[*] Network device supportEthernet (1000Mbit) --->[*] Intel(R) PRO/1000 Gigabit Ethernet supportDevice Drivers --->Network Device support --->[*] Network device supportEthernet (10 or 100Mbit) --->[*] Ethernet (10 or 100Mbit)[*] EISA, VLB, PCI and on board controllers<*> AMD PCnet32 PCI supportFile Systems --->Pseudo filesystems ---><*> /proc file system support< > /proc/kcore support<*> Sysctl support (/proc/sys)<*> sysfs file system support<*> Virtual memory file system support (former shm fs)其它的东东爱选啥选啥。。。喜欢就噢噢了编译内核# make && make modules_install && make install!!!# cp arch/i386/boot/bzImage /boot/kernel-*gentoo-*查看所有可用的模块# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'例如,要自动加载12w9m.ko模块,编辑kernel-2.6文件然后写入模块的名字。# nano -w /etc/modules.autoload.d/kernel-2.612w9m配置文件系统# nano –w /etc/fstab # nano 很恶心!!!/dev/sda1 /boot ext3 defaults,noatime 1 2/dev/sda2 none swap sw 0 0/dev/sda3 / ext3 noatime 0 1Cron syslog dhcp。。。没那闲情弄 ~_~ 还是跳过基本可用的系统差不多了,先让系统起来再说。免得前面的活白干了。最恨浪费时间的东西!!配置引导程序选用GRUB # 习惯,很难改、、、不喜欢LILO# emerge grub# nano –w /boot/grub/grub.confdefault 0timeout 7splashimage=(hd0,0)/boot/grub/splash.xpm.gztitle Gentoo Linux 2.6.27-r8root (hd0,0)kernel /boot/kernel-2.6.27-gentoo-r8 root=/dev/sda3initrd /boot/vmlinux创建/etc/mtab# grep –v rootfs /proc/mounts > /etc/mtab # 官网学的,这招喜欢安装grub# grub –no-flopygrub> root (hd0,0) (指定您的/boot目录所在分区)grub> setup (hd0) (将GRUB安装到硬盘主引导记录)grub> quit (退出GRUB shell)重启系统# exit 退出老早前的 chrootexit 之前记得 passwd 下、、、我最初就没做这步,郁闷的发现系统都起来了。可是user:root之后、password:???那个⊙﹏⊙b汗那。。。。。。# umount /mnt/gentoo/boot# umount /mnt/gentoo/dev# umount /mnt/gentoo/proc# umount /mnt/gentoo可以reboot了如果gentoo 起来、可以暗爽下 慢慢配置些 cron syslog dhcp 什么的了。照这样配置若还有问题、、、报kernel panic 什么的鬼东西、、、怪下自己RP了。。。本文出自 “SimpleWorldSimpleLife” 博客,请务必保留此出处http://tanzj.blog.51cto.com/802764/162465... 全文

gentoo vmware 休闲 职场

VMWare网络设置的3种方式

一 VMware网络设置的三种方式1 Host-only连接方式   让虚机具有与宿主机不同的各自独立IP地址,但与宿主机位于不同网段,同时为宿主主机新增一个IP地址,且保证该IP地址与各虚机IP地址位于同一网段。最终结果是新建了一个由所有虚机与宿主主机所构成的局域网,但该局域网与宿主主机本身所处的现有局域网是相互独立的,如果不做额外路由设置,这两个局域网之间不会连通,因此新建的局域网可以认为是一个单独从属于当前宿主主机的私有网络,其成员为当前宿主主机和相关的所有虚机,这也是Host-only命名的由来。      从网络技术上相当于为宿主主机增添了一个虚拟网卡,让宿主主机变成一台双网卡主机(宿主网卡+虚拟网卡)。同时在宿主主机后端加设一个虚拟交换机,让宿主主机和所有虚机构成另一个虚拟的局域网。由于具备双网卡,宿主主机可同时参与两个局域网(现有的宿主局域网+新建的虚拟局域网),只不过缺省情况下两个局域网不连通。... 全文

vmware 局域网 network 网络

图解VMware内存机制

在写《VMware内存机制初探》 之后,原本是计划写一篇《VMware内存机制再探》的,讲一讲VMware内存机制中的另外几个重要内容,比如透明内存共享(TPS, Transparent Page Sharing), Relaim Memory, Ballooning, swapping等等。但有网友反映说前面的文章还是不好懂。于是想,如果如同官方文档那样条条框框地列出来,那还不如大家都去看原版手册呢,所以有了这 么一篇东西。 首先,大家要记住,在内存没有过量配置(Memory Overcommitment)的情况下,内存的调度机制完全不会启动,就没有Reclaim内存。很明显嘛,主机总的物理内存(Host Physical Memory)大于所有虚机配置内存的总额的情况下,每台虚机想要多少内存,都能得到满足,当然不需要调度。 所以,以下探讨的VMware的内存机制,都是在内存过量配置的情况下发生的。 我的故事发生在一个有智慧的水池(Host)中,水池有不少水(4GB物理内存),里面还有2个水箱(配置了2台VM),水箱有一定的容量(配置内存是4GB),原本是空的(没有开机)。 但是现在水箱1里面要养鱼了,必须放点水进去以便鱼可以存活(开机了)。最少需要1GB内存。于是水箱1(VM1)就向水池(Host)要水(物理内存),水池里面有足够的水,就满足了水箱1的要求。现在水箱1有1GB的活水,而水池里面只剩下3GB的水了。 现在我们又向水箱1里面多丢了些鱼(启动新的应用),原来1GB的水不够用了,于是水箱1就继续向水池要水,水池里面还有足够的水,就又满足了水箱1的要求。现在水箱1里面有3GB的水,而水池里面只剩下1GB的水了。 解释:要注意的是,此时VM1里面的应用程序都是活动的(active),所以这些内存都属于活跃状态,叫做活动内存(Active Memory)。 经过了一段时间以后,水箱1里面的鱼被捕走了,现在水箱1不需要那么多水也足够养活剩下的鱼了。但是水池并不知道水箱1的状况。于是水箱1还是有那么多水。 解释:VM1 的某些应用结束后,释放了部分内存,但是这些内存释放动作是在VM的Guest OS层面释放的,因此Host并不知道有内存被释放了,这些内存没有归还Host,仍然由VM1霸占着。VM1中就有一部分内存属于idle,另外一些正 在使用的内存就是active memory。当然,就VM1自己的GOS看起来,有3GB空闲内存(idle memory),1GB的活动内存;而此时就Host看来,只看见有3GB内存是分配给了VM1的。Host通过VMware Tools中的驱动,每隔一定的时间(ESX4中默认是60秒,ESX3中默认是30秒)去扫描一下VM1的内存使用状态,以便了解它到底有多少活动内存 (active memory)  此时,我们开始在水箱2中养鱼了(VM2开机),水箱2也开始从水池中抽水。但是水池里面的水不能枯竭,因此水池有警戒水位,第一条警戒水位是6%,当下降到第一警戒水位以下并仍然在不停下降时,就要开动其他机制从其他水箱反抽水。 解释:VM2 开机时也需要1GB内存,在启动时,它也不断向Host请求内存。Host则将自己的内存源源不断地分配给VM2,直到下降到第一条警戒位6%。Host 内存有4种状态,分别是High, Soft, Hard和Low,它们间的分界线分别是6%, 4%, 2%和1%。可用内存高于6%时,不会启动Balloon或Swap机制。当低于6%并往4%逼近的时候(soft状态),Balloon机制就启动了。 (关于内存的4种状态的更多解释,请参阅官方文档《Understanding Memory Resource Management in VMware ESX Server》。如何查看这4种状态?可以用esxtop或者resxtop) 那到底向哪个水箱抽水呢?谁的水最富裕就向谁抽。 解释:如何判断呢?刚才我们说过,Host每隔一定时间就会扫描Guest OS的内存使用状况,此时,Host会计算每个VM的份额内存比ρ,ρ和VM的空闲内存还有空闲内存税(IMT, Idel Memory Tax)密切相关,对ρ最小的那台虚机启动气球驱动(balloon driver),气球开始膨胀(inflating)。关于ρ和IMT的算法,请参见本人博文《空闲内存税的算法》。 于是,气球开始膨胀,并将多余的水挤出水箱。 解 释:Balloon驱动如同普通驱动那样,不断向Guest OS索取内存,Guest OS尽自己可能满足气球驱动,并优先将空闲部分的内存分配给它,注意,此时可能出现Guest OS自己的物理内存不足,并引起Guest OS的paging机制,将一部分内存page out到自己的swap中。这个例子中,VM1还有很多空闲内存,因此足够让主机回收并满足VM2的需求。 主机将比较气球膨胀获得的这部分内存的地址,如果原先是分配给VM1独享的,(也就是没有TPS共享),那么就可以收回。主机将不停的通过气球驱动收回内存,收回的目标是保持至少6%的内存。这个回收内存的过程就叫Reclaim。 注意:此时内存没有出现争用情况,因此shares仍然没有起作用,但是Overcommitment是存在的,所以会有reclaim,会有ballooning。Ballooning回收内存是比较慢的,通常需要几分钟。 如 果主机可用内存池的内存减少速度大于气球驱动返还主机的内存,那么可用内存会进一步下降,当突破4%的第2警戒线时,进入到hard状态,主机就会启用第 2种reclaim机制——swapping,将VM1的一部分物理内存交换到swap文件中,以加快回收内存的速度。目的是将可用内存保持在4%的警戒 线以上。 如果可用内存继续下降到2%以下,进入到low状态的时候,ESX不仅会继续加速Swapping,还会阻止其上所有VM的内存请求。 现 在,情况又发生了变化,水箱2中的鱼越来越多了,它不停地向水池要水,而水池也通过气球驱动,不停地将水箱1中的空闲内存挤出来,直到水箱1和2的总需求 量大于了水池能供给的水量。水池再也不能提供更多的水了,只能部分满足2个水箱的要求了。不够的部分怎么办?用一些脏水(swap)来满足。脏水虽然脏 (swap内存速度很慢),鱼在脏水里面生存的很困难,但毕竟还是有水的,不至于因为没有足够的水而导致鱼死掉。 此时,VM1和VM2的active memory由2部分组成,1部分是获得的主机物理内存,另一部分是swap。请注意,Guest OS是不知道自己的一部分物理内存是硬盘上的swap文件的。 当 机器内存不足竞争开始的时候,shares开始起作用。但是,请注意,如果IMT是0,对空闲内存不征税,由于4GB的VM1和4GB的VM2的份额都是 40960,因此它们最终会拿到相同的物理内存2GB。但是如果IMT是默认值,那么空闲内存的代价更大,那么这2台VM会根据active内存数量的不 同,获得不同数量的物理内存。 【本文的知识要点回顾】 (1) 在内存没有过量配置(Memory Overcommitment)的情况下,不需要Reclaim内存 (2) 什么时候开始Reclaim内存?当突破6%的警戒线,内存状态从High变成了Soft的时候 (3) Reclaim优先用Ballooning,只有Ballooning不够用的时候,才会用Swapping (4) 什么时候开始swapping? 当主机可用内存跌破4%警戒线,内存状态变成Hard的时候 (5) Host无法知道VM内的哪些内存块已经处于空闲(idle)状态。必须用Ballooning才能收回空闲内存。 (6) 尽量避免资源争用,否则造成的Chasing-the-tail效应,会导致更严重的性能负面影响。 【参考文档】 (1) Carl, A. Waldspurger, 2002, Memory Resource Management in VMware ESX Serverhttp://waldspurger.org/carl/papers/esx-mem-osdi02.pdf (2) VMware Inc.  Understanding Memory Resource Management in VMware ESX Serverhttp://www.vmware.com/files/pdf/perf-vsphere-memory_management.pdf (3) VMware Inc.  Understanding Host & Guest Memory Usage (2007) http://mylearn.vmware.com/courseware/12400/PS_TA21_288707_166-1_FIN_v3.pdf (4) Idel memory tax http://www.boche.net/blog/index.php/2009/01/29/idle-memory-tax/本文出自 “delxu的Live记事本” 博客,请务必保留此出处http://delxu.blog.51cto.com/975660/288682在写《VMware内存机制初探》 之后,原本是计划写一篇《VMware内存机制再探》的,讲一讲VMware内存机制中的另外几个重要内容,比如透明内存共享(TPS, Transparent Page Sharing), Relaim Memory, Ballooning, swapping等等。但有网友反映说前面的文章还是不好懂。于是想,如果如同官方文档那样条条框框地列出来,那还不如大家都去看原版手册呢,所以有了这 么一篇东西。 首先,大家要记住,在内存没有过量配置(Memory Overcommitment)的情况下,内存的调度机制完全不会启动,就没有Reclaim内存。很明显嘛,主机总的物理内存(Host Physical Memory)大于所有虚机配置内存的总额的情况下,每台虚机想要多少内存,都能得到满足,当然不需要调度。 所以,以下探讨的VMware的内存机制,都是在内存过量配置的情况下发生的。 我的故事发生在一个有智慧的水池(Host)中,水池有不少水(4GB物理内存),里面还有2个水箱(配置了2台VM),水箱有一定的容量(配置内存是4GB),原本是空的(没有开机)。 但是现在水箱1里面要养鱼了,必须放点水进去以便鱼可以存活(开机了)。最少需要1GB内存。于是水箱1(VM1)就向水池(Host)要水(物理内存),水池里面有足够的水,就满足了水箱1的要求。现在水箱1有1GB的活水,而水池里面只剩下3GB的水了。 现在我们又向水箱1里面多丢了些鱼(启动新的应用),原来1GB的水不够用了,于是水箱1就继续向水池要水,水池里面还有足够的水,就又满足了水箱1的要求。现在水箱1里面有3GB的水,而水池里面只剩下1GB的水了。 解释:要注意的是,此时VM1里面的应用程序都是活动的(active),所以这些内存都属于活跃状态,叫做活动内存(Active Memory)。 经过了一段时间以后,水箱1里面的鱼被捕走了,现在水箱1不需要那么多水也足够养活剩下的鱼了。但是水池并不知道水箱1的状况。于是水箱1还是有那么多水。 解释:VM1 的某些应用结束后,释放了部分内存,但是这些内存释放动作是在VM的Guest OS层面释放的,因此Host并不知道有内存被释放了,这些内存没有归还Host,仍然由VM1霸占着。VM1中就有一部分内存属于idle,另外一些正 在使用的内存就是active memory。当然,就VM1自己的GOS看起来,有3GB空闲内存(idle memory),1GB的活动内存;而此时就Host看来,只看见有3GB内存是分配给了VM1的。Host通过VMware Tools中的驱动,每隔一定的时间(ESX4中默认是60秒,ESX3中默认是30秒)去扫描一下VM1的内存使用状态,以便了解它到底有多少活动内存 (active memory)  此时,我们开始在水箱2中养鱼了(VM2开机),水箱2也开始从水池中抽水。但是水池里面的水不能枯竭,因此水池有警戒水位,第一条警戒水位是6%,当下降到第一警戒水位以下并仍然在不停下降时,就要开动其他机制从其他水箱反抽水。 解释:VM2 开机时也需要1GB内存,在启动时,它也不断向Host请求内存。Host则将自己的内存源源不断地分配给VM2,直到下降到第一条警戒位6%。Host 内存有4种状态,分别是High, Soft, Hard和Low,它们间的分界线分别是6%, 4%, 2%和1%。可用内存高于6%时,不会启动Balloon或Swap机制。当低于6%并往4%逼近的时候(soft状态),Balloon机制就启动了。 (关于内存的4种状态的更多解释,请参阅官方文档《Understanding Memory Resource Management in VMware ESX Server》。如何查看这4种状态?可以用esxtop或者resxtop) 那到底向哪个水箱抽水呢?谁的水最富裕就向谁抽。 解释:如何判断呢?刚才我们说过,Host每隔一定时间就会扫描Guest OS的内存使用状况,此时,Host会计算每个VM的份额内存比ρ,ρ和VM的空闲内存还有空闲内存税(IMT, Idel Memory Tax)密切相关,对ρ最小的那台虚机启动气球驱动(balloon driver),气球开始膨胀(inflating)。关于ρ和IMT的算法,请参见本人博文《空闲内存税的算法》。 于是,气球开始膨胀,并将多余的水挤出水箱。 解 释:Balloon驱动如同普通驱动那样,不断向Guest OS索取内存,Guest OS尽自己可能满足气球驱动,并优先将空闲部分的内存分配给它,注意,此时可能出现Guest OS自己的物理内存不足,并引起Guest OS的paging机制,将一部分内存page out到自己的swap中。这个例子中,VM1还有很多空闲内存,因此足够让主机回收并满足VM2的需求。 主机将比较气球膨胀获得的这部分内存的地址,如果原先是分配给VM1独享的,(也就是没有TPS共享),那么就可以收回。主机将不停的通过气球驱动收回内存,收回的目标是保持至少6%的内存。这个回收内存的过程就叫Reclaim。 注意:此时内存没有出现争用情况,因此shares仍然没有起作用,但是Overcommitment是存在的,所以会有reclaim,会有ballooning。Ballooning回收内存是比较慢的,通常需要几分钟。 如 果主机可用内存池的内存减少速度大于气球驱动返还主机的内存,那么可用内存会进一步下降,当突破4%的第2警戒线时,进入到hard状态,主机就会启用第 2种reclaim机制——swapping,将VM1的一部分物理内存交换到swap文件中,以加快回收内存的速度。目的是将可用内存保持在4%的警戒 线以上。 如果可用内存继续下降到2%以下,进入到low状态的时候,ESX不仅会继续加速Swapping,还会阻止其上所有VM的内存请求。 现 在,情况又发生了变化,水箱2中的鱼越来越多了,它不停地向水池要水,而水池也通过气球驱动,不停地将水箱1中的空闲内存挤出来,直到水箱1和2的总需求 量大于了水池能供给的水量。水池再也不能提供更多的水了,只能部分满足2个水箱的要求了。不够的部分怎么办?用一些脏水(swap)来满足。脏水虽然脏 (swap内存速度很慢),鱼在脏水里面生存的很困难,但毕竟还是有水的,不至于因为没有足够的水而导致鱼死掉。 此时,VM1和VM2的active memory由2部分组成,1部分是获得的主机物理内存,另一部分是swap。请注意,Guest OS是不知道自己的一部分物理内存是硬盘上的swap文件的。 当 机器内存不足竞争开始的时候,shares开始起作用。但是,请注意,如果IMT是0,对空闲内存不征税,由于4GB的VM1和4GB的VM2的份额都是 40960,因此它们最终会拿到相同的物理内存2GB。但是如果IMT是默认值,那么空闲内存的代价更大,那么这2台VM会根据active内存数量的不 同,获得不同数量的物理内存。 【本文的知识要点回顾】 (1) 在内存没有过量配置(Memory Overcommitment)的情况下,不需要Reclaim内存 (2) 什么时候开始Reclaim内存?当突破6%的警戒线,内存状态从High变成了Soft的时候 (3) Reclaim优先用Ballooning,只有Ballooning不够用的时候,才会用Swapping (4) 什么时候开始swapping? 当主机可用内存跌破4%警戒线,内存状态变成Hard的时候 (5) Host无法知道VM内的哪些内存块已经处于空闲(idle)状态。必须用Ballooning才能收回空闲内存。 (6) 尽量避免资源争用,否则造成的Chasing-the-tail效应,会导致更严重的性能负面影响。 【参考文档】 (1) Carl, A. Waldspurger, 2002, Memory Resource Management in VMware ESX Serverhttp://waldspurger.org/carl/papers/esx-mem-osdi02.pdf (2) VMware Inc.  Understanding Memory Resource Management in VMware ESX Serverhttp://www.vmware.com/files/pdf/perf-vsphere-memory_management.pdf (3) VMware Inc.  Understanding Host & Guest Memory Usage (2007) http://mylearn.vmware.com/courseware/12400/PS_TA21_288707_166-1_FIN_v3.pdf (4) Idel memory tax http://www.boche.net/blog/index.php/2009/01/29/idle-memory-tax/本文出自 “delxu的Live记事本” 博客,请务必保留此出处http://delxu.blog.51cto.com/975660/288682... 全文

虚拟化 vmware vsphere ESXi 内存机制

VMWare Player的网络配置

今天用了一下VMWarePlayer 感觉还不错,比那臃肿的VMWare Server和Workstation都轻巧。但有一个很严重的问题,网络不能自行配置。于是乎,网上查了一下,果然有解决方法。http://communities.vmware.com/thread/241645配置网络的程序vmnetcfg.exe找回。打开cmd,转到安装程序的目录下。输入命令:VMware-player-3.x.x-xxx.exe/e .\extract... 全文

VMware Player 休闲 网络配置 职场

轻松解决五个VMware安全漏洞(下)

预防VLAN存在的VMware安全漏洞虚机的网络配置很容易修改,这是导致安全漏洞频发的原因之一。... 全文

VMware 漏洞 VLAN

【VMware虚拟化解决方案】第一次虚拟化项目

   好吧.应管理员的邀请.把自己的第一次项目经验分享给大家吧...    这个项目是我第一次亲手实施的生产环境小项目.很小很小.加上备份桌面,一共只需要50个桌面.但是,有了这一次后,我就有了底气.十年磨一剑.做了无数次试验.都为了等待这一刻的检验.过程很简单.去之前心里很忐忑.一开始实施后.就忘记了害怕.硬着头皮做完了.得到了客户的好评.很自豪.也很有成就感.从此以后,就一发不可收拾了.    以前都是负责测试环境或者自己的实验.总是觉得底气不足.应朋友的要求.替他们公司做一套虚拟化方案.    客户要求如下.... 全文

VMware虚拟化

vmware的vmnet

debian上启动一台系统为redhat的vmware虚拟机(版本为5.5.1),redhat有三块网卡:eth0,eth1,eth2,分别设置为bridge,nat,host-only模式,在物理机器debian上的/proc中可以看到网络连接情况: debian:/proc/vmnet# ls bridge0  hub0.1  hub1.1  hub8.0  hub8.3  netif1   userif10  userif5 hub0.0   hub1.0  hub1.2  hub8.1  netif0  userif1  userif11  userif9 hub后面的数字是m.n的格式,其中m表示一个虚拟交换机,而n表示该交换机上的插口,可以看出该系统目前有三台虚拟交换机:hub0,hub1,hub8。通过查看hubm.n的内容可以看到它们每一个插口上连接的“网卡”,以bridge为例: debian:/proc/vmnet# cat hub0.0 connected bridge0 tx 12460 debian:/proc/vmnet# cat hub0.1 connected userif9 tx 366 可以看出,仅仅连接了两个“网卡”,第一个是bridge网卡,也就是真实的网卡设备(bridge的时候要指定真实网卡),第二个是虚拟机里面的网卡: debian:/proc/vmnet# cat userif9 connected hub0.1 mac 00:0c:29:1b:85:3d ladrf 00:00:80:00:00:00:40:40 flags IFF_RUNNING,IFF_UP,IFF_BROADCAST,IFF_MULTICAST read 4286 written 366 queued 4286 dropped.down 12 dropped.mismatch 8147 dropped.overflow 0 dropped.largePacket 0 其中00:0c:29:1b:85:3d即是虚拟机里面Redhat系统的ifconfig eth0得到的mac地址结果,类似的,对于hub8.x系列来说,如下: debian:/proc/vmnet# cat hub8.* connected userif1 tx 32  connected netif0 tx 5 connected userif11 tx 41 其中,userif1是用户态实现的nat设备的字符设备接口,netif0是内核的虚拟网卡设备,userif11是虚拟机redhat系统的eth1,这里还少了一个设备,用户态实现的dhcp设备,这是因为我故意将它(vmnet-dhcpd)kill掉了,它暂时没有用。      除了在/proc中可以看到的这些信息之外,ps -elf也会发现几个进程,其中最重要的就是vmnet-natd和vmware-vmx了,对于vmware-natd来讲,它在用户态实现了一个nat设备,lsof这个进程: debian:/proc/vmnet# lsof -p 4637 COMMAND    PID USER   FD   TYPE     DEVICE    SIZE     NODE NAME ... vmnet-nat 4637 root    3u   CHR      119,8         33477775 /dev/vmnet8 vmnet-nat 4637 root    4u   raw                        6803 00000000:0001->00000000:0000 st=07 vmnet-nat 4637 root    5u  unix 0xf6fb5900             6804 /var/run/vmnat.4637 它打开了vmnat8这个字符设备,而这个字符设备就实现了nat,它就对应/proc/vmnet/中的userif1这个假网卡,那么它是如何实现nat的呢?肯定不是内核实现的,因为此时ipforward为0,另外nat内核模块没有加载,iptables的nat表也没有内容,想来vmware实在不必使用操作系统提供的nat功能,万一操作系统没有这个功能,岂不是vmare的nat模式不能使用了?按照vmware的网卡nat设置在虚拟机redhat上设置一下路由: route add default gw 192.168.120.2 至于说这个120.2是谁的ip地址,还真不好查,实际上它就是用户态nat设备的ip地址,就和一个nat网关有一个ip地址一样,然后在redhat中telnet一下一个外网的地址,然后再lsof一下vmnet-natd这个进程,发现多了一行: vmnet-nat 4637 root    7u  IPv4      10451              TCP 192.168.188.247:32775->192.168.40.91:www (ESTABLISHED) 如果还是不明白这到底是怎么一回事,那么近strace吧,strace这个natd进程,然后再次telnet,发现natd竟然去connect 192.168.40.91了,然后是natd与40.91之间建立了一条tcp连接通道,然后把数据代理给redhat的,只是不仅仅是第七层的数据,而是连tcp握手以及第四层的数据比如序列号等都要代理,很显然这里的握手的信息是natd自己造出来的,因为它用connect连接远程主机,握手包是得不到的。代理数据的时候,很显然执行了nat,其实也就是将userif(/dev/vmnet8)中读出的以太帧中取出目的ip和协议,然后自己和远程通信,得到纯应用数据后,再由从虚拟网络中来的原来的以太帧中的某些部分,比如原始的ip地址等信息构造出一个以太帧,然后发给userif,随后这个userif将得到的数据发给虚拟交换机,然后虚拟交换机将这个以太帧发给另一个userif,这个userif就是vmware-vmx打开的/dev/vmnet8得到的userif了,也就是上面的userif11,vmware-vmx会通过系统调用和模拟中断虚拟机里的网卡将数据转给虚拟机的,vmware-vmx打开的userif其实就是虚拟机里面的网卡的代理,连接到了虚拟交换机之上。      用这种直接和目的主机通信(tcp:connect/send/recv;udp:sendto/recvfrom)然后构造回复给虚拟机的包的方式要比直接去掉源ip,查找目的ip的路由,添加物理主机的新源ip,然后发送raw数据包(scapy的方式)的方式效率更高一些,毕竟以太帧已经从userif中得到了,还有什么无法构造的呢!... 全文

vmware debian redhat 虚拟机 tcp command

Linux虚拟环境下安装VMware Tools

挂载你的“VMwareTools”镜像,默认在虚拟机安装目录下“Linux.iso”打开终端,进入根目录,进入“media”目录,查看是否有“VMwareTools”文件夹。... 全文

Linux 虚拟机安装 VMware Tools

VMWare Forum 2009游记一

知道VMWare Forum 2009这个大会还是同事告诉我的,说10月28号有个会是关于VMWare虚拟化的他想去(由于种种原因他最终还是没能去参加),我一听是虚拟化的(因为现在全民都在虚拟化),就问他要了网址,注册了一下,结果到了27号还没有收到关于注册的信息邮件,正准备给他们打个电话问问呢,他们的电话就来了,我的注册号是:10014015(估计算是后边的了),马上去跟领导请假,领导还是比较估计我去参加这种活动的。因为接到他们的电话(晚上又了短信提醒)说8点以前到有光盘和精美早餐,于是早上6点30就起来了,匆匆忙忙洗漱完了就出发,到地点也就是北京国际饭店会议中心快7点50了,一看来的人就非常多了,于是先排队领资料吧,领了一个包(资料都在包里)和光盘,包的质量一般吧,不过看着还不错,想起了上学时候背的包。领完资料后就去了展示台那边参观,来的厂家可是真不少啊,有INTEL、CISCO、DELL、EMC、HP、IBM、NETAPP等等,但是最大的还是WMWare占的地方最大,因为是他们组织的嘛。转了一圈领了一些资料(后来才知道包里都有),当然也填了几分资料,换了几个小礼品。一看快到8点30了,就是到了3楼,3楼大会议室门口有租同步翻译的机器,要一张名片和100元押金,上午主要是演讲,我就想主要听下午的课就没有租,进到会场占了相对有利的座位,靠边的位置有利于开溜。8点30分大会正式开始了!本文出自 “alexa” 博客,请务必保留此出处http://alexa.blog.51cto.com/58533/218353... 全文

虚拟机 VMWare Forum 休闲 游记

在VMware中对SUSE Linux的性能优化手册

      由于现在VMware向购买Vsphere的客户免费提供SUSE Linux Enterprise Server(SLES),所以许多公司针对他们的Linux需求都部署了SUSE Linux。  由于现在VMware向购买Vsphere的客户免费提供SUSE Linux Enterprise Server(SLES),所以许多公司针对他们的Linux需求都部署了SUSE Linux。然而正如本文所描述的一样,即使你已经安装了专门针对VMware环境使用而开发的SUSE内核,你仍然可以通过进一步的性能优化来获得意想不到的收获。... 全文

Linux 开发 vmware

VMware发布2012年第三季度财报 同期增长20%

全球虚拟化和云基础架构领导厂商VMware公司今天公布了2012财年第三季度财务业绩报告:第三财季收入为11.3亿美元,比去年同期增长20%。运营利润率为16.8%;非GAAP运营利润率为32.2%。... 全文

VMware 虚拟化

VMware PowerCLI(VI Toolkit)

VMware PowerCLI是一种通过PowerShell管理vSphere的接口,其中包括很多命令、实例脚本和功能库。这样我们就可以通过powershell来管理vSphere了。包括200多个命令,涵盖虚拟机、主机、网络、日志、报告等方面。1.安装要求:.net 2.0 Service Pack1Windows PowerShell 1.0或Window PowerShell 2.0 Release To Manufacture(RTM)2.从下图可以看出,它已经不叫PowerCLI,它现在叫VMware VI Toolkit了。同时提供32位和64位两个版本,并有较为详细的帮助手册。3.VMware VI Toolkit界面,在最前面提供了简单使用说明,即可以连vSphere Center,也可以连ESX Server,就像vSphere Client一样。4.较为清晰命令的显示形式,你可以规规矩矩的输入一整行命令,也可只输入命令,等待提示操作。如:C:\PS&gt;Connect-VIServer -Server 10.23.112.235 -Protocol https -User Administrator -Password pass01或5.简洁易懂的命令和较好的显示排列,基本都是以动词开头如set、get、move、remove之类。如:get-vm 获得虚拟机清单6.相关下载地址Microsoft PowerShell 1.0 http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspxMicrosoft PowerShell 2.0 RTM http://www.microsoft.com/downloads/details.aspx?FamilyID=60deac2b-975b-41e6-9fa0-c2fd6aa6bc89&displaylang=enVMware vSphere PowerCLIhttp://communities.vmware.com/community/vmtn/vsphere/automationtools/windows_toolkit  本文出自 “Plaway的博客” 博客,请务必保留此出处http://plaway.blog.51cto.com/872211/253079... 全文

Toolkit PowerCLI 休闲 VMware 职场