码迷,mamicode.com
首页 > 系统相关 > 详细

【VMware虚拟化解决方案】配置和部署VMware ESXi5.5

时间:2015-02-08 00:21:54      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:

【VMware虚拟化解决方案】配置和部署VMware ESXi5.5

马博峰

     在安装ESXi5.5之前,需要对要对整个环境进行设计和规划,由于虚拟化涉及服务器技术、网络技术和存储技术等多项技术,所以虚拟化的架构设计涵盖了CPU的选型、网络的设计、共享存储的方式、虚拟化资源的需求和安装ESXI的模式等知识。一个好的VMware vSphere安装设计方案决定着最终虚拟化的效果。

1、CPU的选型

     无论是采用X86服务器,还是采用机架式、塔式或者刀片式服务器,CPU的选择是至关重要的。现在市场上主流的CPU是Intel公司和AMD公司产品,这两家公司的CPU对虚拟化都有很好的支持,具体选择哪家的产品,我们需要根据实际情况而定。

     一般安装ESXi需要一个 64 位的CPU,而具体选择哪一款CPU还需要考虑许多其他的因素,其中最重要的一点就是虚拟化技术选项,具体来说就是是选择Intel 虚拟化技术 (Intel VT) 的CPU还是选择 AMD 虚拟化 (AMD-V) 技术的CPU。这时有的读者可能会奇怪了,为什么只能选择这两种技术的CPU呢?其实原因很简单,因为只有具有这两种技术的CPU才提供虚拟化功能。但是有一点必须要注意,不是所有的Intel公司或AMD公司的CPU都能支持这项技术,一般来说这几年的新CPU都支持这项技术,所以对于想利用旧服务器来搭建虚拟化平台的,就必须仔细查看所选的CPU是否支持虚拟化技术。

     另外在选择CPU时还有一点也很重要,就是所选的CPU要支持硬件强制实施的数据执行保护 (DEP)技术,此项技术必须可用并且已启用。具体地说就是,你必须启用 Intel XD 位(执行禁用位)或 AMD NX 位(无执行位)。除此之外,一些新购买的服务器默认是不开启虚拟化Intel VT 或 AMD-V技术的,需要在主板BIOS中开启虚拟化技术,可以利用检测功能来测试服务器的CPU是否支持虚拟化技术。

技术分享

     当满足CPU硬件需求后,接下来要做的就是对虚拟化上的虚拟机CPU资源做出统计,安装在物理计算机中的VMware vSphere拥有最多320个逻辑处理器。这里所说的逻辑处理器可以是一个核心处理器,也可以是一个使用超线程技术的处理器。理论上说,一个虚拟机最多可以配置64个虚拟处理器,但是实际使用时,一个客户操作系统可以支持的虚拟处理器数量并没有这么多,具体情况如下:

一颗单处理器,每个处理器都是四核的,这样就会提供四个逻辑处理器。

一颗双处理器,每个处理器都是四核的,这样就会提供八个逻辑处理器。

一颗四处理器,每个处理器都是双核的,这样就会提供八个逻辑处理器。

一颗四处理器,每个处理器都是双核的、并且采用超线程系统,这样就会提供十六个逻辑处理器。

     当然,虚拟机中的一个逻辑处理器在运算能力上不等于物理处理器中的一个核,也不是说使用四颗处理器,每个处理器都是双核的、并且采用超线程系统,这样就会提供十六个逻辑处理器,就只能建立16个虚拟机。VMware vSphere可使用物理计算机上的逻辑处理器来配置多个虚拟机并同时运行它们。创建虚拟机的多少取决于两点:一是运行VMware vSphere服务器的可用物理资源;二是VMware vSphere的最大能力。拥有足够物理资源的ESXi服务器可以支持配置更多个虚拟机。

2、网络的设计

     网络的规划关系到整体虚拟化系统是否能正常的运作。提到网络,首先会涉及的自然就网卡了,由于要实现多个网络虚拟化的功能,所以对服务器的网卡会有一定的要求。运行在Hyper-V主机上的虚拟机要通过主机上的物理网卡进行通信。

     在正式开始介绍之前,首先让我们看一个例子。假设我们有一台高性能的物理主机,但却只有1个千兆物理网卡。我们在该物理主机上安装了VMware vSphere,并创建了虚拟网络与物理主机唯一网卡的连接,此时在这台主机上建立的虚拟机都要通过这一个网卡进行通信。我们搭建好的这一虚拟系统在运行的初始阶段,多个外部请求同时访问虚拟机时,其性能并没有受到任何影响。但是随着虚拟机的增加和网络访问的增长,使得只有1个物理网卡的VMware vSphere主机在通信上遇到了堵塞,一些虚拟机甚至出现了网络延迟和丢包的现象。此时这个问题如何解决呢?其实很简单,就是不能将所有虚拟机的网络通信全部放到1个物理网卡上的一个网口,应该放在具有冗余和更好带宽的网络上。通过这个例子说明:若是确定要使用VMware vSphere虚拟化技术,则必须要在采购服务器时,确保服务器的网口数量和网络可扩展性满足虚拟机业务的发展,而这就是网络规划的内容之一。

     在实际的网络规划中,可能还要考虑不同种类的网络类型,因为不同的网络类型可能用于不同的网络通信,也可能为了更好的带宽而使用不同类型的网卡。VMware vSphere网络包括虚拟机网络、高可用网络、虚拟机实时迁移网络、管理网络、iSCSI San网络和FC SAN网络等。

     除了需要考虑以上因素外,进行网络规划时还要考虑这些网络的冗余和带宽设计。比如说iSCSI SAN,通常至少需要4个千兆网卡,才能有4GB的带宽;如果采用FA SAN,则需要至少2个8GB HBA卡,才能有4GB的带宽。无论是采用什么方式,在设计VMware vSphere虚拟化网络的时候,一定要保证网卡数量和带宽满足业务的需求。但是要注意,VMware vSphere不支持无线网络。

3、存储规划

    如果是采用单台ESXi主机,且该主机连接了多块硬盘,比如Dell R520,那么我们可以使用本机的存储设备来存放虚拟机文件。VMware vSphere主机连接存储的方式包括:可以通过直接连接的存储,使用串行进阶技术连接(Serial Advanced Technology Attachment――SATA)、外部串行进阶技术连接(external Serial Advanced Technology Attachment――eSATA)、并行高级技术连接(Parallel Advanced Technology Attachment――PATA)、串行连接SCSI(Serial Attached SCSI――SAS)、SCSI、USB及火线连接存储。

    如果是单台ESXi主机,每台都使用直连存储设备,那么就可以解决单台主机虚拟机空间不足的问题了;如果将2台单独的主机连接在一起,就可以通过VMware vSphere将虚拟机从一台ESXi主机中迁移到另外一台ESXi主机,而在迁移的过程中无需共享存储,虚拟机也不会出现中断运行,这就是VMware vSphere中的重要功能――可以在非共享存储上迁移虚拟机。但是,如果在直连存储设备中,当一台ESXi主机发生故障时,则在这台ESXI主机中的虚拟机也会停止工作,直到ESXi主机恢复工作,这样就会造成业务的长时间中断。

    同样可以使用VMware的新技术,那就是VMware Virtual SAN,VMwareVirtual SAN是VMware首个软件定义存储产品,VMwareVirtualSAN直接置入VMwarevSphere内核,提供新一代聚合式虚拟化管理程序存储功能。该软件集中管理行业标准x86服务器的内部磁盘与闪存设备,实现出色且灵活的虚拟机共享存储。根据内部基准测试,VMwareVirtualSAN在32节点集群上的读取性能高达200万IOPS(输入输出操作/每秒)1,读写性能为640,000 IOPS。

4、内存规划

    VMware vSphere支持的最大内存为4TB,每个虚拟机最多分配1TB内存。VMware vSphere具有动态内存的技术,通过该技术可以动态负载虚拟机工作时候所占用的内存,这样可以节省一些内存空间。但是在内存的规划中,不能将虚拟机运行内存和物理机的内存等同,毕竟多留些内存空间还是好的,以防不时之需。

    对于老服务器增加内存来说,在选购内存的时候尽量要选择与原服务器相同品牌和频率的内存,如果采用不同品牌或者不同频率的内存,则要检测兼容性和稳定性,一般情况下,1333 MHz和1066 MHz两种不同频率的内存插在一起,则会降频到他两者共有的频率上。在一些服务器上,一定要注意插内存的顺序(不同品牌的服务器插内存的顺序也不同),并在主板BIOS中选择内存的模式,如ECC、Mirroring或Optimizer。

技术分享

     接下来接下来就是安装VMware ESXi,安装VMware ESXi有很多种方法和方式,其安装方法包括:

1、交互式 ESXi 安装(小型推荐)

对于不足五台主机的小型部署,建议使用交互式安装。从 CD 或 DVD、可引导的 USB 设备引导安装程序,或从网络中的某个位置通过 PXE 引导安装程序。按照安装向导中的提示将 ESXi 安装到磁盘。

2、脚本式 ESXi 安装

运行脚本是使用无需人工干预的安装部署多个 ESXi 主机的有效方式。安装脚本包含主机配置设置。可以使用该脚本配置具有相同设置的多个主机。安装脚本必须存储在主机可以通过 HTTP、HTTPS、FTP、NFS、CDROM 或 USB 访问的位置中。可以以 PXE

方式引导 ESXi 安装程序或从 CD/DVD 或 USB 驱动器中引导。

3、Auto Deploy ESXi 安装(大型推荐)

vSphere 5.5提供了多种方法来使用 Auto Deploy 安装 ESXi。

4、使用 ESXi Image Builder CLI 自定义安装

     可以使用 ESXi Image Builder CLI 创建带有自定义的一组更新、修补程序和驱动程序的 ESXi 安装映像。ESXi Image Builder CLI 是一个 PowerShell CLI 命令集,可用于创建具有自定义的一组 ESXi 更新和修补程序的 ESXi 安装映像。也可以包含在 vSphere 版本之间发布的第三方网络或存储驱动程序。可以通过将其刻录至安装 DVD的方法或者通过 vCenter Server,使用 Auto Deploy 功能部署使用 Image Builder 创建的 ESXi 映像。

     这里先介绍下使用交互式 ESXi 安装方法,首先需要下载ESXi镜像文件,将 ESXi 安装程序 CD/DVD 插入 CD/DVD-ROM 驱动器,或连接安装程序 USB 闪存驱动器并重新启动计

算机。将 BIOS 设置为从 CD-ROM 设备或 USB 闪存驱动器引导。

技术分享

在引导过程中,可以看到主机的cpu和内存的基本信息

技术分享

在出现的第一个安装引导界面中,点击Enter,确定继续安装

技术分享

技术分享

     在“选择磁盘”页面中,选择要在其上安装 ESXi 的驱动器,然后按 Enter。按 F1 可获取所选磁盘的相关信息。注意 选择磁盘时,请勿依赖于列表中的磁盘顺序。磁盘顺序由 BIOS 确定,并可能顺序不当。连续添加、移除驱动器的系统可能会出现这种问题。如果选择的磁盘中包含数据,则将显示“确认磁盘选择”页面。如果在具有之前的 ESXi 或 ESX 安装或 VMFS 数据存储的光盘上安装,该安装程序可提供多个选择。

     如果选择的磁盘位于虚拟 SAN 磁盘组中,则生成的安装将取决于磁盘类型和组大小:

     如果选择的是 SSD,则同一磁盘组中的 SSD 和所有基础 HDD 将被清除。

     如果选择的是 HDD,并且磁盘组有两个以上磁盘,则只有选定的 HDD 才会被清除。

     如果选择的是 HDD 磁盘,并且磁盘组的磁盘不超过两个,则 SSD 和选定的 HDD 将被清除。

技术分享

选择主机的键盘类型。安装后可在直接控制台中更改键盘类型。

技术分享

输入主机的根密码。密码不能留空,但为了确保第一次引导系统时的安全性,请输入不小于7位数的密码。安装后可在直接控制台中更改密码。

技术分享

按F11键开始安装。

技术分享

技术分享

     安装完成后,取出安装 CD、DVD 或 USB 闪存驱动器。按Enter键重新启动

技术分享

     如果执行新的安装,或选择覆盖现有 VMFS 数据存储,则在重新引导操作过程中,会在主机磁盘上创建VFAT 暂存分区和 VMFS 分区。

技术分享

     对于一些服务器已经不再配置光驱,所以需要通过其它的方式进行安装ESXi,制作U盘启动盘是一个非常好的方式,用来代替CD/DVD的安装模式,使用USB进行安装是非常方便的,由于ESXi镜像文件本身不大,所以我们可以充分利用小于2GB的老U盘,建议使用1GB的U盘作为ESXi系统引导盘。

     对于制作ESXi U盘启动盘,可以通过windows下的第三方工具来进行制作,也可以在linux的系统下通过指令的方式来制作U盘启动盘,下面我就从windows和linux系统制作U盘启动盘。

     在windows下,需要借助第三方的软件来进行U盘启动盘的制作,这里我使用的是UltraISO软件,这是一个专业的刻录软件,其版本为9.6.1,之后需要准备一个大于512M的U盘,以管理员的身份启动启动UltraISO 。然后打开VMware ESXi的ISO文件包,选择菜单栏-启动-写入硬盘镜像

技术分享

在写入磁盘硬盘影响界面中国,选择写入,写入时磁盘会被格式化成FAT32格式的磁盘,如果U盘中之前有数据,可以先拷出来,以免格式化后造成损失。

技术分享

技术分享

     点击写入后,UltraISO会以USB-HDD的方式写入,并会以Syslinux v3引导扇区写入,大概10-20分钟的时间,U盘启动盘就制作完成了。

技术分享

     在 Linux 计算机上执行该过程,并且该操作系统将 USB 闪存驱动器检测为 /dev/sdb。如果您的 USB 闪存驱动器未检测为 /dev/sdb,或者不确定 USB 闪存驱动器是如何检测到的,请确定该闪存驱动器的检测方式。然后VMware 网站上,下载 ESXi ISO 映像 VMware-VMvisor-Installer-5.x.x-XXXXXX.x86_64.iso,包括isolinux.cfg 文件。在终端窗口中,运行以下命令。

1、在 USB 闪存驱动器上创建分区表,使用命令:

fdisk /dev/sdb

a 键入 d 删除分区,直至将其全部删除。

b 键入 n 创建遍及整个磁盘的主分区 1。

c 键入 t 将 FAT32 文件系统的类型设置为适当的设置,如 c

d 键入 a 在分区 1 上设置活动标记。

e 键入 p 打印分区表。

结果应类似于以下文本:

Disk /dev/sdb:2004 MB, 2004877312 bytes

255 heads, 63 sectors/track, 243 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sdb1 1 243 1951866 c W95 FAT32 (LBA)

f 键入 w 写入分区表并退出。

实际的过程为:

Command (m for help): p

Disk /dev/sdb: 8166 MB, 8166703104 bytes

64 heads, 32 sectors/track, 7788 cylinders, total 15950592 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x4bd294d1

Device Boot Start End Blocks Id System

/dev/sdb1 * 0 3311615 1655808 17 Hidden HPFS/NTFS

Command (m for help): d

Selected partition 1

Command (m for help): n

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-15950591, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-15950591, default 15950591):

Using default value 15950591

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): c

Changed system type of partition 1 to c (W95 FAT32 (LBA))

Command (m for help): a

Partition number (1-4): 1

Command (m for help): p

Disk /dev/sdb: 8166 MB, 8166703104 bytes

64 heads, 32 sectors/track, 7788 cylinders, total 15950592 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x4bd294d1

Device Boot Start End Blocks Id System

/dev/sdb1 * 2048 15950591 7974272 c W95 FAT32 (LBA)

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x

partitions, please see the fdisk manual page for additional

information.

Syncing disks.

2使用 Fat32 文件系统格式化 U盘。

mkfs.vfat -F 32 -n USB /dev/sdb1

3运行下列命令。

syslinux /dev/sdb1

cat /usr/share/syslinux/mbr.bin > /dev/sdb

4挂载 USB 闪存驱动器。

mount /dev/sdb1 /usbdisk

5挂载 ESXi 安装程序 ISO 映像。

mount -o loop VMware-VMvisor-Installer-5.x.x-XXXXXX.x86_64.iso /esxi_cdrom

6将 ISO 映像的内容复制到 /usbdisk。

cp -r /esxi_cdrom/* /usbdisk

7将 isolinux.cfg 文件重命名为 syslinux.cfg。

mv /usbdisk/isolinux.cfg /usbdisk/syslinux.cfg

8在 /usbdisk/syslinux.cfg 文件中,将 APPEND -c boot.cfg 一行更改为 APPEND -c boot.cfg -p 1

9卸载 USB 闪存驱动器。

umount /usbdisk

10卸载安装程序 ISO 映像。

umount /esxi_cdrom

现在,USB 闪存驱动器可以引导 ESXi 安装程序了。如果引导时出现了menu.c32: not a COM32R image这样的错误,则需要拷贝一个新的menu.c32文件到U盘,覆盖原来的文件

cp /usr/lib/syslinux/menu.c32 /mnt/usb/

ESXi设置

     VMware ESXi 5.5的控制台更加精简、高效、方便,管理员可以直接在VMware ESXi 5.5控制台界面中完成管理员密码的修改、控制台管理地址的设置与修改、VMware ESXi5控制台的相关操作。在VMware ESXi 5.5中,按F2键,输入管理员密码(在安装VMware ESXi 5.5时设置的密码),输入之后按Enter键,讲进入系统设置对话框。

技术分享

进入system customization(系统定制)对话框,在对话框中能够完成口令修改、配置管理网络、测试管理网络、恢复网络设置和配置键盘等工作。

技术分享

如果需要修改VMware ESXi5.5的管理员密码,可以将光标移动到技术分享 处按Enter键,在弹出的configure Password对话框中,先输入原来的密码,然后在分2次输入新的密码并按enter键将完成密码的修改。

技术分享

网络配置

在 技术分享 选项中,可以选择管理接口网卡、控制台管理地址、设置VMware ESXi主机名称等。首先将光标移动到configure Management network,然后按enter键,进入configure Management network对话框。

技术分享

在 技术分享 选项中按Enter键,打开network Adapters对话框,在此选择主机默认的管理网卡,当主机有多块物理网络时,可以从中选择,并在status列表中显示出每个网卡的状态。

技术分享

     除了在VMware ESXi控制台界面可以选择管理网卡外,还可以在vSphere Client界面设置或选择。两者之前的区别是:如果设置过程中出现错误,在vSphere Client设置时会断开与VMware ESXi的连接并且失去对VMware ESXi的控制,而在VMware ESXi控制台设置则不会出现这中情况,即使设置错误也可以重新设置。所以在实际使用中,如果没有必要,不建议使用vSphere Client修改VMware ESXi的网络以免失去连接。

     在 技术分享 选项中,可以为管理网络设置一个VLAN ID,一般情况下不要对此进行设置与修改。

技术分享

     在 技术分享 选项中,设置VMware ESXi管理地址。默认情况下,VMwareESXi的默认选择是Use dynamic IP address and network configuration,就是使用DHCP来分配网络,使用DHCP来分配管理IP,试用于大型的数据中心的ESXi部署,在实际使用中,应该为VMware ESXi设置一个静态的IP地址,所以这里选择Set static IP address and network configuration,并设置一个静态的IP地址,这里设置为192.168.1.101,并为其设置相应的subnet mask和default gateway。

技术分享

     在 技术分享 选项中,可以为我们的ESXi服务器设置一个IPv6的地址,默认情况下是开启IPv6服务的,是通过use ICMP stateless configuration(AUTOCONF),如果要设置静态的IPv6,则需要选择Do net automatic configuration,并设置static address和Default gateway。

技术分享

     在 技术分享 设置页面中,设置DNS的地址与VMware ESXi 主机名称。

技术分享

     在 技术分享 设置界面中,设置DNS的后缀名称,DNS的后缀名称也可以在设计主机名称中添加后缀,系统默认为localdomain,如果不修改这个名称,当前VMwae ESXi主机全部名称则为esxi.localdomain,如果VMware Esxi所在的网络中没有内部的DNS名称,则可以保持默认值,一般情况下,网络中都会有DNS服务器,需要在此改为网络中的DNS域名。

技术分享

     后续还需要在网络中的DNS服务器上添加VMWare ESXi主机的A记录,并指向VMware ESXi主机的IP地址。

技术分享

     在设置或者修改完网络参数后,按ESC键返回上一设置菜单时,会弹出技术分享 对话框,提示是否更改并重启管理网络,按Y确认并重新启动管理网络,如果不立即重启管理网络,可以在上一菜单中选择手动重启网络。

技术分享

     在网络设置中,有一个选项是 技术分享 ,这个选项是手动启动管理网络,在配置VMware ESXi管理网络的时候,如果出现错误而导致VMware vSphere Client无法连接到VMware vSphere时,可以手动重启管理网络。

     如果想测试当前的VMware ESXi的网络是否正确,是否能连接到企业网络,可以选择 技术分享 ,在弹出的 技术分享 对话框中,测试到网关地址或指定的其它地址的Ping测试,在使用Ping命令并且有回应时,会在相应的地址后面显示OK提示。

技术分享

技术分享

     当我们在平时运维过程中,遇到网络设置错误或者是配置主机文件错误时,这时候就需要恢复一下网络的设置,在VMware ESXi的设置页面中,有一项叫做技术分享 ,就是网络的恢复,在网络恢复的界面中,可以恢复网络的设置、恢复标准交换机设置和恢复分布式交换机vDS。

技术分享

     在恢复网络的对话框中,选择F11,则会恢复网络,此时,如果VMware ESXi上有虚拟机,则虚拟机会无法进行通信,如果使用的是VMware vSphere Client连接到VMware ESXi,则会造成中断,且管理网络会变成自动获取IP地址(DHCP)。

技术分享

     如果在安装过程中没有选择正确的键盘模式,可以在设置页面中的技术分享 选项里,重新选择和设置键盘。

技术分享

     如果要启动VMware ESXi中的ESXi Shell与SSH,则在技术分享 选项中进行设置,除了使用控制台和VMware vSphere Client来管理VMware ESXi以外,还可以通过网络使用SSH的客户端连接到VMware ESXi并进行管理。默认情况下,VMware ESXi的SSH功能并没有启动,除此之外,还可以设置ESXi Shell的超时时间等。

技术分享

     VMware ESXi提供查看日志,在控制台界面中选择 技术分享 ,根据选项来查看日志,选择1是系统日志,2是vmkernel日志,3是配置日志,4是Management Agent(主机)日志,5是VirtualCenter Agent(vpxa)日志和VMware ESXi Obsercattion log(vobd)。

技术分享

     例如,选择1可以查看系统的日志,如图所示。

技术分享

    其次也可以查看支持的信息,选择 技术分享 ,可以查看具体的信息。在支持的信息里,看以看到VMware ESXi基本信息,例如Serial Number、License Serial Number、SSL Thumbprint(SHA1)和SSH DSA Key Fingerprint等。

技术分享

技术分享 选项可以将VMware ESXi恢复到默认状态,这些状态包括:

1、 VMware ESXi控制台地址恢复为DHCP,计算机上名称恢复到刚安装时的名称。

2、 系统管理员密码被清空

3、 所有正在运行的虚拟机将会被注销。

如果选择该选项,将会弹出 技术分享 对话框,按F11键恢复安装设置,按ESC取消这个操作,如果按F11键确定恢复,系统则会要求重新启动,在系统恢复设置后,由于系统的管理员密码被清空,所以管理员需要在第一时间内重新启动控制台,进入Configure Password对话框,设置新的管理员密码。由于管理网络、主机名都被恢复到默认值,所以还需要进行重新设置管理地址和设置主机名称等。

技术分享

【VMware虚拟化解决方案】配置和部署VMware ESXi5.5

标签:

原文地址:http://www.cnblogs.com/zhengah/p/4279520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!