VMware虚拟机

浅谈部署VMware物理系统虚拟化技术P2V(Physical to Virtual)

本文略谈VMware虚拟化技术。

一般在从事服务器管理工作中,最繁重的工作莫过于数据的备份。在比较重要的服务器上,往往都采用了双机热备份技术,但是双机热备份技术高昂的搭建成本(一般在40万以上),是中小企业难以承受的。而VMware虚拟化技术恰恰提供了一个很好的解决方案。 企业搭建虚拟化平台之后的第一件事肯定是将现有的服务器应用业务转移到虚拟服务器上,这就是虚拟化整合服务器的第一步,也是虚拟化程序的基础功能之一。
VMware的P2V(Physical to Virtual)的转化功能。将现有的物理服务器操作系统连同全部的应用程序和硬盘上已经储存的文档数据整体打包转移到搭建好的虚拟化平台上,不用再循规蹈矩的装完系统装应用,按部就班的调完本地调网络,整个过程有点像PC上的一键Ghost系统,可以将将系统整体搬迁到新的硬件上。这对虚机的部署有很大的方便,原先物理服务器上的应用程序并不需要停顿太长时间就可以在虚拟平台上继续工作了。

不过虚拟化的P2V可不是Ghost,迁移的过程更像是将OS操作系统从硬件驱动中剥离并且架空到虚拟层之上,由虚拟层将接管硬件驱动,并将硬件资源,如:存储磁盘、处理器、内存和NIC等关键部件虚拟化为OS认可的并且可以继续调配使用的虚拟资源
现以VMware vCenter Converter Standalone Client为例:

如果搭建的虚拟化平台是一台网内的服务器,选第二项进入,如果是在本地,直接点击登录就可以了。

VMware物理系统虚拟化技术P2V(Physical to Virtual)

这是以本地服务器登录的,点击转换计算机按钮。

VMware物理系统虚拟化技术P2V(Physical to Virtual)

选择远程计算机,在IP地址或名称栏中填写需要虚拟化的物理机IP地址,并填写管理员账户名和密码,如是linux服务器,需要填写root账户和密码,然后点击下一步。由于本人计算机不在局域网内,就不截图了。配置好以后,就可以转换了,这是一个比较长的过程。时间的长短视乎迁移数据的大小和网络的带宽。转换成功以后,就可以再ESX虚拟机上启动迁移所得到的系统了。此时的虚拟机时和原物理机一样的,记得改主机名和IP哦!这样物理机虚拟化就完成了。

几种常见的计算机虚拟技术

全虚拟化技术(Full virtualization)

全虚拟化技术即是对物理硬件进行完全虚拟的一种技术平台,所以在这样的平台运行的Guest OS是不需要对各种常规操作系统进行修改的。而且支持在同一平台上运行各种不同内核,不同类型的操作系统,相当于一台真正的物理机器。其最大的缺点是由于要完全虚拟化硬件,执行效率偏低,实际应用中成本也比较昂贵。常见的技术平台有:Parallels Workstation,Parallels Desktop for Mac,VirtualBox,Virtual Iron,Oracle VM,Virtual PC,Virtual Server,Hyper-V,VMware Workstation,VMware Server (formerly GSX Server),QEMU,Adeos,Mac-on-Linux,Win4BSD,Win4Lin Pro,and Egenera vBlade technology。

半虚拟化技术(Paravirtualization)

半虚拟化技术可以选择性的对部分硬件进行一些必要的虚拟,是全虚拟和内核级虚拟的一种折中的方法,所以其的各方面的表现上基本也是介于两者之间。使用半虚拟化技术需要对Guest OS进行一些必要的修改,对能使其正常运行在虚拟平台上。常见的技术平台有:Xen,UML,TRANGO和KVM。

操作系统级虚拟化技术(Operating system-level virtualization)

这是一个基于操作系统级的虚拟技术,其Guest OS环境和物理机器的系统共享同一个系统内核,有点类似于将各个运行环境隔离。所以在上面只能运行相同内核的系统,并需要对Guest OS做一些必要的修改,被广泛应用于现在的VPS中。常见的技术平台有:Solaris Containers, OpenVZ, Linux-VServer, AIX Workload Partitions, Parallels Virtuozzo Containers和 iCore Virtual Accounts。

硬件辅助虚拟化技术(Hardware-assisted virtualization)

这也是常说的HVM,使用这种虚拟技术可以不需要对 Guest OS进行修改。目前集成了虚拟技术支持的硬件平台有:x86 (and x86_64)—AMD-V,Intel VT-x ,IOMMU ,Power Architecture,Virtage (Hitachi),UltraSPARC T1, T2 and T2+(Sun)。
而支持这些硬件平台的虚拟技术软件有:Linux KVM, VMware Workstation, VMware Fusion, Microsoft Virtual PC, Xen, Parallels Desktop for Mac, VirtualBox and Parallels Workstation。

以上内容主要参考了wiki上的知识,不明之处可进一步详查。

Xen虚拟化

老笔记本安装Xen,半开虚拟化全过程

准备条件

  1. 查看电脑的cpu是否支持虚拟化:输入命令 cat /proc/cpuinfo | grep flags ,查看结果中有没有 pae ,若有则支持半虚拟化,再看有没有 vmx(intel) 或 svm((amd) ,若有,则支持全虚拟化。这个要在 xen 安装之前做,安装后默认就看不到 vms/svm 了。
  2. 确认 BIOS 里虚拟化开关打开。

安装Xen

安装 xen 有两种方法,一种是做安装系统选择 package的时候,选择 virtualization。这样在系统安装完成后, xen也自动安装好了。 另一种是在安装完系统后,输入命令:

yum –y install kernel-xen xen

命令执行完成后, /boot/grub/menu.lst 自动就会有 xen 的启动项了,修改它为默认启动项。安装完成后,使用命令 uname –a 查看内核版本有没有Xen字样。如:输入 xm list 查看有没有 Domain-0。

安装虚拟机

如果需要 VNC 安装,则修改xen配置文件以支持vnc,Xen的配置文件 /etc/xen/xend-config.sxp 默认监听 vnc 的 ip 要改成 0.0.0 .0 ,否则只能在本机连接上去安装系统。(一般服务器是没有 XWindows 的)

如果需要虚拟出 windows系统,那么必须使用全虚拟模式;如果仅仅是需要虚拟 linux 系统可以使用半虚拟模式。本虚拟的运行效率相对全虚拟要快很多。

一、全虚拟

virt-install-v –n vm01 –r 2048 –f /var/lib/xen/images/vm01.img –s 40 –c/var/lib/xen/images/centos55.iso –m AA:BB:CC:DD:EE:FF –vnc
-v 全虚拟 ( 半虚拟用 -p)
-n 要创建的虚拟机名称
-r 内存,单位 MB
-f 指定虚拟机硬盘位置
-s 指定虚拟机硬盘大小,单位 GB
-c 指定安装镜像位置
-m 指定虚拟机 MAC 地址
–vnc 使用 vnc 远程连接安装

注意:-m 后面的mac字符串中字母大写,如果没有关闭 SELinux ,最好把 img 文件和安装镜像 iso 文件都放在 /var/lib/xen/images 文件夹下。在物理机上执行 x m list 查看一下新建的 guest host 机器的 id 。 如果使用 vncviewerl 连接主机 IP:5901 ,这里 ID 是多少,就连接多少。完全虚拟化安装要使用 VNC ,半虚拟化可以使用也可以不使用。

二、半虚拟

半虚拟安装可以使用 http 、 ftp 、 nfs 来做为安装源,这里采用 nfs 方式。
配置 nfs
挂载 centos 的镜像
mount –o loop /var/lib/xen/images/centos57.iso /mnt
编辑 /etc/exports
/mnt * (ro)
启动 nfs
service nfs start

执行命令:

virt-install -p –n vm01 –r2048 –f /var/lib/xen/images/vm01.img –s 40 –l nfs:10.247.0.220:/mnt –mAA:BB:CC:DD:EE:FF –vnc

这里跟全虚拟不同的是 -v 变成了 -p ,然后 -c 变成了 -l ,接下来使用 vnc 安装跟全虚拟的步骤一样,如果直接在物理机上安装,则执行 xm console vm01 命令。
注意 : 在安装过程中,定制 linux 的软件包时,只需要留一个 base ,不要有其他的包,否则会出 bug 。

配置Xen

使用vncviewer远程连接安装完成后,就会在 /etc/xen/ 下生成 vm01 这样跟你指定虚拟机名字一样的配置文件,修改配置文件,可修改 cpu 个数,内存大小, mac 地址等。最重要的,把 vnc = 1 改成 vnc = 0 。这样就不可以远程 VNC 连接了。

克隆虚拟机

克隆前必须关掉被克隆的虚拟机。
virt-clone –n vm02 –o vm01 –f/var/lib/xen/images/vm02.img –m AA:BB:CC:DD:EE:FF
-n 新虚拟机名称
-o 源虚拟机
-f 新虚拟机硬盘文件
-m 新虚拟机 MAC 地址

克隆完成后,可在物理机中使用 xm console name 来进入到这个虚拟机中。修改
Vi /etc/hosts 修改 hostname
Vi /etc/sysconfig/network 修改 hostname
Vi/etc/sysconfig/network-scripts/ifcfg-eth0 修改 ip

Xen基本管理命令

Xm –help 查看帮助
Cd /etc/xen
Xm create vm01 启动 vm01 虚拟机
Xm shutdown vm01 关闭 vm01
Xm destroy vm01 删除 vm01 服务器
Xm reboot vm01 重启 vm01
x m list 查看所有虚拟机

自动启动 vm01
ln -s /etc/xen/vm01/etc/xen/auto/
添加软链接
这样就行了。虚拟机的配置文件:
On_poweroff = “restart”
这个要注意,否则虚拟机关机后,只能到母机上去 xm create vm01 这样开机了。

还有 nfs 的安装配置。这个要在半虚拟化时候要用。

/usr/sbin/virt-install–paravirt –name=node1 –file-size=5 –ram=1024 –vcpus=2–file=/xen/node1 –location=nfs:123.125.162.7:/mnt –extra-args=”ip=123.125.162.45netmask=255.255.255.192 gateway=123.125.162.1 dns=202.106.0.20″ –networkbridge=xenbr0 noipv6(作者:李辉)

Windows7下虚拟机安装64位的linux系统安装Oracle

windows下搞oracle实在很不爽,决定在windows7下安装虚拟机,虚拟一个64位的linux系统安装oracle。不想使用VMware-GSX-Server或者VMware-WorkStation,决定使用oracle的 virtualbox

Oracle VM VirtualBox(类似VMware-WorkStation)是一款开源免费的虚拟机软件,适用于桌面系统,它和服务器端虚拟化软件Oracle VM Server(类似VMware-ESX-Server)共同构成了完整的虚拟化软件解决方案。

我安装的是32位windows7系统,想要在虚拟机上安装64位的系统。默认设置是不能成功的, 会提示不支持的CPU架构。VirtualBox提示:

VT-x/AMD-V 硬件加速器已被启动,但当前处于无效状态。您虚拟电脑内的操作系统将无法检测到64位的CPU,因此也将无法启动。请确认在您电脑的BIOS中已启用VT-x/AMD-V支持。

进入BIOS,设置启用虚拟化支持。ok,可以新建虚拟机了,在安装Oracle Linux Release 4 Update 8 for x86_64过程中,笔记本windows7直接重启,多次尝试均失败了,一度想使用VMWare算了。

今天google了一把,发现:不仅需要安装Oracle VM VirtualBox,必须安装VirtualBox Extension Pack以使虚拟机能正常运行。OK,下载安装Extension Pack。

http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html#extpack

折腾还没有结束:

安装Oracle Linux Release 4 Update 8 for x86_64启动时,报告/dev/hde的状态是unreachable,忽略继续,到了磁盘分区的时候,报告下面这个错误:

linux input/output error during read on /dev/hde

点击重试还是不行,点击cancel,居然可以进行磁盘分区,问题是磁盘/dev/sda,而且grub是安装在/dev/hde上,见鬼了。查看虚拟机的磁盘,发现我创建的25G磁盘是SATA控制器下的磁盘,且类型为AHCI模式。

不折腾了,直接删除SATA控制器,使用已经存在的磁盘在IDE控制器下新建一个磁盘。OK,不再出现/dev/hde的状态是unreachable等warnning,一路顺利安装。(文:灵love犀 329569349)

Xen虚拟化

也谈Xen虚拟化技术,对比VMware的感触

我不是专业的技术人员,我的一个朋友(IT界知名人士)说我是个二把刀网管,其实主要业务是做市场。其实做市场没有什么不好的,因为做市场的人,除了了解市场行情外,还需要对产品和技术特别关注,因为当客户问到你问题的时候,你总不能来个电话求救吧。必须解答客户的提问。

我这次对XEN架构的虚拟化技术的使用后,也要感谢云集 yunji.hk 从他们那里了解到了XEN架构比VMware虚拟化的优势了。MTOOU.INFO调用;虽然VMware就只有一个文件,不怕虚机之间的病毒串门,但是在自由更换配置及后续功能上着实有一些限制。

Xen对比VMware的感触

一、 随时随地的升级虚机系统,当我们对现有环境运行代码时,客户抱怨速度很慢或者总提示500错误(即超过最大连接数目或部分硬件设备达到饱和状态),只需要通过XEN的控制端滑动几个增量滑动条,就好像用鼠标拉动IE浏览器右侧的滚动条一样,完成过去WM很复杂的配置过程,无需专业技术人员助阵。

二、无缝迁移,为什么要迁移,服务器硬件设备故障了,服务器宕机了,系统会自动从健康的服务器顺利的划出一个空间,将宕机的设备里内容移植过去,整个过程只需要100-300毫秒,正常1秒被分为1000毫秒,所以我们基本上是没有感觉的,这也就是XEN的好处,虽然VMware也可以实现此功能,但需要工程师的配合,我记得2003年的时候讲过心跳线,两台X86的服务器,相互检测谁不行了另外一个就替换它。但是VMware配置麻烦呀,可恶的微慕公司为什么要这么高深呢。

三、系统重装,我今天上午想用个LINUX测试PHP代码,跑MYSQL数据库,下午想用WIN系统跑个MS SQL,按照我们现有的方式,联系技术部,告诉他们我需要做什么,什么时间需要,技术部也很头痛,可能他们会给我另外一个IP的VMware虚机让我测试不同的平台,可我这个人旧是脑袋笨的很,记不住东西,所以我还想要那个IP,那就需要从VMware的管理母服务器上操作了,可是不是所有的客户都能等,一个安装搞了2个小时。但是在XEN架构下,我可以任意安装我需要测试的平台,整个过程只需要3分钟,也不需要麻烦技术部了。当然XEN下首先集成了所有主流的服务器软件,我可以自由选择。

四、数据保留安装,我觉得网站的服务器系统让我折腾的烂了,我也可以在同一个分区下,重新安装系,XEN 可以保留重要目录不变,而执行删除或格式化,甚至我可以保留我的重要文件夹,将WIN平台换成LINUX平台。VMware下,重新安装系统必定会提示你先备份数据然后全盘格式化再安装,然后是漫长的数据恢复,那个累呀。

以上是我通过对 云集yunji.hk 的一点点研究,感谢他们的团队对我的疑惑问题解答。

Xenserver虚拟化

在Xenserver Dom0通过iostat监测SR IO状态

Citrix XenServer的Dom0是一个32位的CentOS,它为所有的DomU IO提供转发通道。当虚拟机系统出现了性能问题,一般我们可以在Dom0通过top、iostat、free、vmstat等命令来查看Dom0状态,初步定位是否在Dom0出现IO瓶颈。上述这些命令中iostat可以给我们提供丰富的IO状态数据。

基本使用

$iostat -d -k 1 10
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。

Xenserver Dom0通过iostat监测SR IO状态

tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。

kB_read/s:每秒从设备(drive expressed)读取的数据量;kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;kB_read:读取的总数据量;kB_wrtn:写入 的总数量数据量;这些单位都为Kilobytes。

上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时统计的磁盘总TPS是39.29,下面是各个分区的TPS。(因为是瞬间 值,所以总TPS并不严格等于各个分区TPS的总和)

-x 参数

使用-x参数我们可以获得更多统计信息。

-x 参数

rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的 时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个 设备相关的写入请求有多少被Merge了。

rsec/s:每秒读取的扇区数;wsec/: 每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;

await:每一个IO请求的处理的平均时间(单位是微秒)。这里可以理解为IO的响应时 间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。

%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该 设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因 为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

-c 参数

iostat还可以用来获取cpu部分状态值:

iostat还可以用来获取cpu部分状态值

常见用法

$iostat -d -k 1 10       #查看TPS和吞吐量信息
iostat -d -x -k 1 10    #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10               #查看cpu状态

实例分析

Xenserver Dom0通过iostat监测SR IO状态 实例分析

上面看到,磁盘每秒传输次数平均约400;每秒磁盘读取约5MB,写入约1MB。

Xenserver Dom0通过iostat监测SR IO状态 实例分析

可以看到磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了。

综上所述,我们通过await, %util, %iowait这三个参数,对于我们判断XenServer的各个SR的IO情况,是非常有帮助的。(文:小猪欢迎我)

电脑知识和技术文章

VDI-in-a-Box看上去很美

在去年6月的辛看点中,我们做了一次当时还叫做Kaviza vBox的Citrix整合式虚拟桌面产品的前瞻介绍,今天,这款改名叫做Citrix VDI-in-a-Box产品终于登陆中国,正式开始销售了。在我们开始向我们的客户和代理商开始推荐之前,通过分析4种“官方”预设的说法,来帮助大家更好地厘清自己的销售思路。

这就是桌面虚拟化

首先,VDI-in-a-Box只是一个Citrix的最低版本的桌面虚拟化,相当于XenDesktop中的VDI版本,与XenDesktop企业版和白金版的功能差别很大,特别是缺少Flexcast,Provisioning等功能,意味着没有XenApp这个法宝,在虚拟机里面打开虚拟应用的盗梦空间故事没有了,应用,用户数据,OS分层都可以各自存在云云,这些都没有啦。所以千万不要误以为,这就是一个带有全部Citrix桌面虚拟化能力,而配置又非常简单的产品,没有那么好的事情,至少现在还没有。(也许有一天Citrix会把Flexcast等功能加入VDI-in-a-Box,不过现在还只能是一个良好的祝愿吧)

这是桌面虚拟化,但是这不是我们之前的发布会,培训会上介绍的Citrix美轮美奂的桌面虚拟化。

BrainMadden Citrix Kaviza收购完全分析:http://www.brianmadden.com/blogs/gabeknuth/archive/2011/05/24/Citrix-acquires-Kaviza-as-an-SMB-VDI-Solution.-Here_2700_s-our-full-analysis_3A00_.aspx

中小企业导向

有人会说,反正是针对中小企业的市场,功能是少一点,无所谓啦。VDI-in-a-Box是一个难得的好产品,如果只是用企业规模大小来衡量用户对于桌面虚拟化的需求,从而去设定目标市场,真对不起Kaviza开发的这个好产品了。我们认为判断VDI-in-a-Box目标客户,不能看企业规模,用户数这些指标,而是应该看应用场景,kaviza在被收购之前就做过超过5000个座席的项目,显然在技术层面VDI-in-a-Box没有任何问题,并且在目前的经济环境下,大企业一样需要便宜又实惠的解决方案。

VDI-in-a-Box在没有了Flexcast,XenApp,Provisionsing的情况下,它还有什么?

首先,即便没有任何额外的应用,原生发布的桌面内部至少有一个IE浏览器,很多公司的应用都是基于BS的,这个IE浏览器加隔离的操作系统就可以满足需求了,搞定。

其次,你可以通过制作多个系统模板来预装不同的应用,来满足不同的用户场景,当然前提是你需要搞定五花八门的应有程序授权问题。

最后,虽然没有了XenDesktop完整版中的OS,应用,用户配置分离,组合的能力,但是Citrix好歹给了VDI-in-a-Box一个CitrixProfile Management的功能,用户的Cookie啊,浏览器的收藏夹啊,好歹还可以有个性化。

如果一个企业的呼叫中心,或者就是普通的办公环境,没有太多的个性化应用,不需要HDX 3D这样的设计环境,VDI-in-a-Box可以满足绝大多数从前XenDesktop应有的场景,而对于学校这样的环境,1000台以上的计算机中心项目,VDI-in-a-Box甚至应该是首选。(Kaviza在教育市场大获成功,可见只要用户使用场景适合,照样可以拿到大单。)

还有一点,VDI-in-a-Box得使用需要一个微软的VDA桌面操作系统许可,这个许可是按照1年1个设备100美金来收取的,只有签了微软SA软件保障的用户可以免单,这对中小企业来说,不得不说是一个沉重的打击,三年就要300美金啊,5年就要500美金啊,乖乖。

Citrix VDI-In-A-Box 常见问题汇总:http://support.citrix.com/article/CTX131208

只要一个盒子

虽然,名字叫in-a-box,但是千万不要迷信一个盒子,你至少需要一个额外的盒子来存储用户在虚拟桌面中保存的数据,一台NAS是绝大多数VDI-in-a-Box项目的必需品。由于VDI-in-a-Box,无法备份保存,用户存放在虚拟机中的数据,所以最好选择一台网络存储作为用户个人数据的存放目录。

除了NAS,你必须要非常清晰地了解,你经常谈到的50个人的小Case事实上需要不只一台服务器,在12核,64Gb内存的服务器上,只能发布50个左右的XP桌面或者25Win7桌面,这意味着在高可用的情况下,发布XP桌面,50个就需要2台服务器,而Win7的话,基于N+1原则,需要三台服务器。如果100Win7用户,那就需要至少5台服务器,外加至少一个NAS

回忆一下,XenDesktop虽然组件众多,但是在资源池服务器上,其每台服务器的承载量差不多也是这个数目,而如果你用一台虚拟机把其他组件都虚进去的话,总台数和费用,差不多!

不过,如果算上Windows Server 2008 R2的费用,这就差的多了,XenDesktop有个不好的地方,所有的组建都要装在WindowsServer上,一个Server的授权费用是很贵的,虽然硬件可以合并,但是系统的钱不能省(Vmware View存在同样的问题),而VDI-in-a-Box最大的好处是,整个系统不需要任何的WindowsServer参与,只需要Win7或者XP就可以了,如果你可以弄到不要钱的Win7或者XP,那就真的省老钱了啊。(当然不是指盗版,微软的操作系统授权规定,如果用户购买相应的微软软件保障SoftwareAssurance,就可以免费使用虚拟机中的桌面操作系统)

微软SA介绍:http://www.ms-talent.com.cn/Win7/Win7_Ensure.aspx

VDI-in-a-Box真正省钱的是在软件授权上,而不是通过减少硬件盒子,事实上也减不了多少,所以推广起来的重点在于和用户说明微软操作系统授权的问题,以及XenDesktop的复杂性不仅带来工程师的困扰,更重要的是那一个个组件在消耗你购买Windows Server的银子啊。

View的杀手锏

除了以上几点,VDI-in-a-Box还有一个对View的杀手锏,就是VDI-in-a-Box是按照并发连接数来收费的,而不是XenDesktop的用户或者设备模式,这样对于远程办公或者学校机房等有波峰波谷的场景更为有利。

看起来VDI-in-a-Box基本完胜View了,且慢。说到VDIView之前的名字就叫VDI,现在改View和他的一个小兄弟ThinApp关系重大,这也是Vmware痛定思痛的成果。相比VDI-in-a-BoxView还多了ThinApp的应用投送能力,而VDI-in-a-Box,没有XenApp的支持,应用只有靠在模板中“安装”,太惨了。这个杀手有点软!

相比VDI-in-a-Box,我们觉得带有Desktop Experience桌面发布模式的XenApp 6.5更有杀手风范,价格上和ViewThinApp的相当,硬件资源需求是对手的三分之一到四分之一,并且具有应用单独投送能力,对手机,平台等移动环境支持好。(无论View还是VDI-in-a-Box,在手机和9寸以下的平板上基本都不能用,Windows大桌面真的太大了!)用户的体验和Xendesktop的效果相当,在群柏桌面云发布的最初的日子,很多同事以为这就是XenDesktop呢。

方枪枪:我不想要VDI-in-a-Box!我想要View

园长:方枪枪,你不要认为有了View就是特别高兴的事情。其实VDI-in-a-Box啊,是你能买的到的最实在的桌面虚拟化产品了,将来你想换啊,都换不回来了。(作者:JeffWang)

电脑知识与技术

一位西安交通大学计算机硕士的求职总结

上周终于把三方寄出去了,从去年9月开始找工作,现在终于算是告一段落。借着放假的机会,整理下自己找工作的历程,也算是一些心得体会。希望对下一届的找工作的同学有所帮助。也给一个月后的答辩攒RP吧。
本人软件本科、计算机硕士,最后签约公司:morgan stanley。在求职开始,考虑到除专业之外,自己没有其它兴趣或者特长,因此给自己的求职定位就是IT企业的研发岗。因此,我的找工作历程基本分为 IT民企和IT外企,也穿插了在体制内单位打了几次酱油。下面主要回忆面试过程中问到的问题,有些时间太久不太记得了。

IT民企部分

  1. 华为云计算(offer)。华为招聘分为一面,二面,机试。一面问的是以技术为主,写了两个程序,第一个是shell排序,第二个是就餐者离席次序(每次数到第七个人离席),都很简单。二面时间很短,大概五分钟,就是问问为什么选择华为,对云计算有什么了解。虚拟化(我个人简历上的研究方向)和云计算关系,愿意不愿意去深圳等。机试就是常规性格测试。
  2. 腾讯无线(offer)。,招聘分为笔试,一面,二面,HR面。笔试考察的主要是基本的数据结构和c语言。一面考察基本功, 抽象类和接口区别,多态,多线程实现方式,linux socket建立过程,JAVA同步和linux中的线程同步机制,写快排程序,分析复杂度。二面考察的是解决问题能力,问了一些实际项目中遇到问题如何解决,最后问了一道大规模数据处理问题。进入HR面基本是拿到offer,也会问一些问题,工作地点倾向,性格特点等。腾讯是我第一个签约的单位,不过它家办事很规范,违约办理很快。
  3. 百度系统部(一面后无下文)。投百度职位的时候,在商务搜索和系统部之间纠结了很久,最后因为个人背景原因选择系统部。百度效率很高,笔试完不久就立即发面试通知,系统部就参加了一面,因为职位关系,我准备了很多内核以及虚拟化相关的内容,但是面试让我大跌眼镜,问的全是JAVA知识,让我措手不及。一面过后无下文,后来证实投系统部的都面了一面没有下文,不知是个人问题还是走形式。
  4. 淘宝(offer)。淘宝招聘分为笔试,一面,二面,三面,HR面。没有参加笔试,霸王面。一面面试官对虚拟化感兴趣,一直在问项目,二面面试官直接写程序,一个8*8方格不同颜色填充,找出相同颜色块的最大区域个数。然后写一个huffman的建树过程。三面面试官问了一些内核知识,然后让设计一种读写锁,问了一个赌徒赌钱的博弈问题。HR面基本就直接告诉拿到offer,然后谈薪资。淘宝这两年进去是个机会,因为还没有上市,所以承诺有期权。待遇上也是根据面试表现分等级。
  5. 创新工厂(二面杯具)。在教2-100被HR MM的演讲忽悠着投了创新工厂,第二天就参加笔试,创新工厂的笔试和面试很多重复。一面先问项目,然后让写程序,第一个程序和淘宝那个找最大色块数类似,第二个程序是随机发牌程序。二面问题不太记得了,因为在西电阴冷又破的教室,和同学去的时候就想回来了,据其它同学面试,KMP算法写的最多。创新工厂招人很少,而且待遇没有竞争力。
  6. 中国银联(offer)。典型的国企,没有笔试,面试就一轮,只需时间最多10分钟。问问做的项目,遇到四面困难等,薪资期望等,就结束了。

IT外企部分

外企开始的都比较晚,今年外企普遍回暖,所以多了不少的机会。

  1. Marvell APSE(offer) marvell 没有面试,也是三轮面试,在面试之前,根本不了解这个公司,因为第一天投简历,第二天早上去面试,很仓促,在面试路上问舍友,是什么部门,汗一个。第一轮面试,主要问了c++的一些问题,都很常规,写了一个c++的多态程序,然后让编写一个程序,实现屏幕自动显示字体调整大小的程序。二面面试官主要问项目,问了一些driver开发的问题,内核模块如何写,DMA传输等。然后让举一些编译优化选项解释,我列举了 packed,voilate 等。三面不问技术,以英文交流为主,问自己的兴趣爱好,求职意向和薪资需求等介绍公司和部门。Marvell的offer是周围同学中收到最晚的。
  2. Microstrategy (止步二面)。微策略分为笔试,面试,AC。笔试5道题,基本覆盖了算法,语言,基本数学,智力题。西安的面试分为2轮,面试细节很好,每一轮面试前,前台的HR会给面试官打电话,然后面试官下来接你去面试。这也是我第一家参加全英文面试的公司。微策略不会考察背景,直接就写程序,一面:在数组中快速找出两个和为2010的数,找出数组中唯一重复的数等。二面:第一个是全排列程序,第二个问题是100层楼,一个球,球在第N层掉下来完好,N+1层会碎。求 N。测试次数尽可能小。这家公司因为突然全英文面试,准备不充分,是失败原因之一。待遇很好,浙大同学称之为米缸。
  3. IBM  Z-system (offer )。 IBM 没有笔试,面试两轮,后来我又接到了一轮电面。第一轮面试写程序,写过一个单链表逆置,写了一个利用栈实现队列功能。再问了一些语言知识和设计模式,具体不记得。二面以内核为主,问了Linux内存管理知识,然后问了虚拟化技术和VT技术,还有项目。电面过程不记得,问的都比较基础,和前面面试也有重复。
  4. Intel (offer)。职位是二进制翻译组,去上海AC。第一面依旧是排序算法,项目,二面是自己写一个内存分配算法,考虑编译优化。三面问体系结构,然后让设计一种BT翻译模型。四面就是manager,介绍下职位,主要是你问他。Intel 报销效率超快,去的时候给HR发票清单,走的时候HR就会把报销好的信封交给你)
  5. EMC (offer)。这是一家感觉最遗憾和对不住的公司。EMC笔试很晚,11月6号笔试,感觉考得很不理想,所以没去想了,后来面试官告诉我EMC主要是笔试刷人的,60分客观题的线是18分。面试分为3轮,每轮半个小时,一面面试官以项目为主,问内核,虚拟化。二面面试官技术问的很细致,写了好几个程序,二叉树遍历,哈希算法设计,还有不记得了,三面面试官回归一面形势,比较泛,据三面面试官说,主要是笔试刷人,面试主要在我参加的二面面试官那边。面试当晚就收到offer。拿到offer后,和美国一个架构师又面试了一下,那个组主要是bios,firmware的开发,底层问的比较多。EMC近期很火,存储很热,加上vmware,未来发展应该相当不错,并且提供的福利待遇在外企中也是很好的。
  6. 微软(SDET offer)。微软对我来说是意外。面试百度时接到微软笔试通知,因为没有西安考点就没有考虑,但是微软的HR很负责,后来打电话确认成绩为什么为0的时候,我极力争取了一次远程面试机会,问了一些基本问题,判断链表环,哈希算法,然后问一组连续数字数组某一数字异常,如何检测。然后拿到AC机会,和 intel面对面在闵行,很偏僻,持续一天,全英文。这一家面试我大部分时间站在黑板前,因为要不断的写程序,一面:第一个设计一个数据结构和算法遍历保存STL的层级结构,二面:自己提出需求设计一种扩展功能的队列,比如扩展三个功能,复杂度尽可能低,三面,二叉树共同父节点查到,设计一个运行时代码解释框架。这个div开发组最后还是没有给我机会,回来后意外收到另外一个组的测试职位电面。最终放弃。
  7. Morgan Stanley (offer) 找工作的结束点。Morgan 也是意外,笔试当天因为签约腾讯,错过,但是后来同学推荐,通过推荐流程第二批进去。过程也是最长最痛苦的,分为电面,coding test,AC,全部全英文。Intel面试回来下午,电面,问的都是语言问题,以JAVA为主,然后做coding test,限定24小时交,熬夜5点赶完发过去,早上八点起来参加EMC面试,下午2点在做coding test的review,是个老外,问自己如何分析,如何做的,特别问了我一个正则表达式(超长)如何写的。然后上海AC,早上7点40到,分为一面,二面,三面,群面,继续笔试,follw up 面试。一面写程序依然是快排,介绍项目,问了一些语言,二面我超时了(HR过来提醒面试官2次时间到),不记得面试官问了什么,但是后来进来一个香港人,一直问我,设计一个系统,如何做,给我描述一个场景,指出有什么缺陷,如何改进等。三面,主要问的问题是设计一个算法,保证数据读写不等待。群面就是小组讨论,第一次参加群面,题目是如何促进morgan和高效学生之间最大的沟通。在公司吃完午饭,接着做了一个笔试题,然后我又被留下follow up面试,问的主要是数据库设计问题,问了一个电梯设计算法。面试结束已经下午4点。

酱油类

南京841研究所,中物院计算技术研究所。本身对这些单位没有太大兴趣,所以就不说了,面试内容也没有参考价值。

罗里罗嗦写了一堆,总结下来,对于计算机类找工作,我觉得主要有以下几个方面。

  1. 基础。交大的学生,基础还是都很扎实的,所以这些不是基本问题,这些依赖于平时个人的积累,在找工作的时候就会发挥出来的。
  2. 准备。不管基础怎么样,准备同等重要。从专业角度来说,计算机准备无非是三个方面:语言,数据结构算法,系统。语言你可以准备你最熟悉和擅长的,基本数据结构(二叉树,链表是重点),排序,查找,哈希,红黑树,常用算法KMP,归并,动态规划,回溯,简单数论知识等。系统可以是系统编程,内核等,因人而异。推荐清华的算法分析与设计,算法导论,编程之美,程序员面试宝典。准备还要包括简历,随时关注招聘信息,应届生网站和国内其他高校的bbs都是不错的途径。
  3. 争取。很多机会是自己争取的,尤其是自己错过一些机会的时候,如果我没有在HR给我打电话时解释原因并且争取的话,我是去不了微软面试的。在面试过程中,多和面试官交流,适当情况下可以索要联系方式,获得事情有转机的时候,尽量争取。
  4. 总结。找工作是个体验新鲜的同时积累的过程,面试多了,你会发现以前你被面试问题又被问到,所以面试完的总结很重要,尤其是你没有解决好的面试问题。
  5. 自信并且注意细节。细节很重要,我在做morgan coding test的时候,用的是JAVA,但是我简历写的是精通c++ 熟悉 java,后来面试官告诉我,他们甚至会怀疑这个是不是你做的,如果这个被放大了,或许就会错过了。

祝愿今年找工作的同学找工作顺利!