5840
原文地址:http://cloud.51cto.com/art/201501/464053_all.htm引言如果你刚接触Apache CloudStack,想了解和熟悉相关概念,可是苦于没有搭建测试环境所需的种种设备,何不使用你现有的PC和VirtualBox?VirtualBox是一种跨平台的虚拟化应用程序,可以在OS X、Windows、Linux和Solaris等操作系统上运行,这意味着不管你运行什么操作系统,应该都能够运行VirtualBox。本文的目的是,尽管一切都在笔记本电脑上运行,因而受到明显的制约,还是要搭建一个近可能接近生产部署环境的Apache CloudStack 环境。部署的这个系统将支持Apache CloudStack的下列几大功能:生产级虚拟机管理程序:思杰XenServer 6.2,完全支持虚拟局域网(VLAN);CentOS 6.5上的Apache CloudStack;主存储和辅助存储都使用NFS――各自都在专用的VLAN上;控制台代理和辅助存储虚拟机;所有的高级网络功能特性,比如防火墙、网络地址转换(NAT)、端口转发、负载均衡和虚拟私有云(VPC)。想实现所有这些功能,我们就要在VirtualBox上部署两个虚拟机、为Apache Cloudstack部署一个CentOS虚拟机,以及为虚拟机管理程序部署一个思杰XenServer虚拟机。CloudStack虚拟机还将充当我们的MySQL服务器和NFS服务器。这种测试环境的一大要求就是,让该环境保持完全独立,那样它可以用于培训(插入Bootcamp链接)和演示等用途。为了实现这个目标,并且保持这一功能:部署新的区域(Zone),下载系统中所要使用的示例CentOS模板,我们模拟CloudStack公共网络,使用NGINX在CloudStack管理服务器上托管运行默认的CentOS模板。VirtualBox配置从https://www.virtualbox.org/wiki/Downloads,下载并安装合适的版本。一旦VirtualBox安装完毕,我们就需要对它进行配置,以便准备用于该环境。尽可能使用默认值,但如果你之前已经一直在使用VirtualBox,可能需要调整不同的设置。我们将使用三个“Host Only”(仅主机)网络、一个“NAT”网络和一个“Internal”(内部)网络。默认情况下,VirtualBox只有一个“仅主机”网络,于是我们需要另外构建两个仅主机网络。1. 从“文件”菜单(Windows)或VirtualBox菜单(OS X),选择“Preferences”(偏好设置),然后依次选择“Network”(网络)和“Host-only Networks”(仅主机网络)。2. 另外构建两个网络,那样至少有三个网络可供我们使用。3. 为头两个网络设置IP模式(IP Schema),如下所示:仅主机网络的命名约定不一样,这取决于主机的操作系统,我只是将这些称之为“仅主机网络1”、“仅主机网络2”和“仅主机网络3”,依次类推,所以不妨参阅下列比较矩阵,即可识别正确的网络。This Guide Windows OS X仅主机网络1 VirtualBox仅主机以太网适配器 vboxnet0仅主机网络2 VirtualBox仅主机以太网适配器#2 vboxnet1仅主机网络3 VirtualBox仅主机以太网适配器#3 vboxnet2仅主机网络1:IPv4地址:192.168.56.1IPv4网络掩码:255.255.255.0DHCP服务器是可选的,因为我们并不使用它,但要确保地址范围与我们将要使用的静态IP:192.168.56.11和192.168.56.101没有冲突。仅主机网络2:IPv4地址:172.30.0.1IPv4网络掩码:255.255.255.0通过设置这些IP地址范围,我们就能确保充当主机的笔记本电脑在这些网络上有一个IP,那样我们就能访问与它们连接的虚拟机。我们不需要“仅主机网络3”上的IP,因为这个将用于存储,而且还要运行VLAN。我们使用NAT网络,那样我们就能将CloudStack管理虚拟机连接到互联网,从而能够安装我们所要使用的各种程序包。配置VirtualBox“NatNetwork”,以便使用下列设置:网络名称:NatNetwork网络CIDR:10.0.2.0/24由于我们无法控制范围,于是禁用了DHCP,将虚拟机上静态分配的IP排除在外。虽然本文主要介绍构建单一的CloudStack管理服务器,但是你很容易添加第二台CloudStack管理服务器;我发现,来自NAT网络的DHCP分配IP地址会随机变化,所以设置NAT规则可能问题重重,因此我总是使用静态分配的IP地址。“内部”网络根本不需要配置。CloudStack虚拟机使用下列设置,为CloudStack管理器创建一个虚拟机:名称:CSMAN 4.4.1类型:Linux版本:Red Hat(64位)内存:2048(初始安装不能低于这个值)硬盘:VDI―动态―64 GB(我们分配了这么多的容量,是因为它将充当NFS存储区)。注意:如果你同时增添所有网络,VirtualBox似乎会将这些网络混同起来,于是我们先添加第1个网络,并安装CentOS,然后一旦完全安装完毕,我们就添加额外的网络,可是在这当中会重启,这似乎是最新版本VirtualBox(截至本文截稿时是4.3.18)的一个bug。改动设置,为第1个网络适配器分配正确的网络,如下所示:安装CentOS 6.5 64位minimal版,将主机名称设为CSMAN,将IP地址设为192.168.56.11/24,网关为192.168.56.1,并确保网络已设置成引导时启动。将DNS设成公共服务器,比如8.8.8.8 & 8.8.4.4。一旦安装完毕,重启虚拟机,核实eth0处于活动状态,然后关闭虚拟机,添加第2个网络适配器。引导虚拟机,那样它能检测到网卡,然后关闭,添加第3个适配器。引导虚拟机,那样它能检测到网卡,然后关闭,添加第4个适配器。最后,引导虚拟机,那样它能检测到最后一个适配器,然后我们就能为各个网卡配置正确的IP模式。ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet IPADDR=192.168.56.11 PREFIX=24 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME=MGMT ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet IPADDR=10.0.2.11 GATEWAY=10.0.2.1 PREFIX=24 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none DEFROUTE=yes PEERROUTES=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME=NAT ifcfg-eth2 DEVICE=eth2 TYPE=Ethernet IPADDR=172.30.0.11 PREFIX=24 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME=PUBLIC ifcfg-eth3 DEVICE=eth3 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MTU=9000 VLAN=yes USERCTL=no MTU=9000 ifcfg-eth3.100 DEVICE=eth3.100 TYPE=Ethernet IPADDR=10.10.100.11 PREFIX=24 ONBOOT=yes BOOTPROTO=none NAME=PRI-STOR VLAN=yes USERCTL=no MTU=9000 ifcfg-eth3.101 DEVICE=eth3.101 TYPE=Ethernet IPADDR=10.10.101.11 PREFIX=24 ONBOOT=yes BOOTPROTO=none NAME=SEC-STOR VLAN=yes USERCTL=no MTU=9000 重启网络让新设置生效,然后打上所有最新的更新版。service networking restart yum update -y 安装和配置基本的虚拟机构建好后,我们现在需要安装Apache CloudStack及该虚拟机将托管运行的其他所有服务。首先我们要确保虚拟机配置正确。SelinuxSelinux需要设置成“permissive”(宽容模式),为此我们可以通过运行下面两个命令来实现:setenforce permissive sed -i “/SELINUX=enforcing/ c\SELINUX=permissive” /etc/selinux/config 主机名称你在运行hostname –fqdn后,CloudStack管理服务器应该会返回FQDN(完全符合标准的域名),但由于我们没有安装一个正常运行的DNS,可能会返回“未知主机”。为了解决这个问题,我们只要在Hosts文件里面添加一项;我们在Hosts文件里面时,最好也为xenserver添加一项。用下面命令更新/etc/hosts,然后重启让其生效。127.0.0.1 localhost localhost.cstack.local 192.168.56.11 csman.cstack.local csman 192.168.56.101 xenserver.cstack.local xenserver 为SSH连接提速由于你想使用SSH连接到CloudStack虚拟机,有必要关闭DNS检查,以便为连接提速。运行下列命令:sed -i “/#UseDNS yes/ c\UseDNS no” /etc/ssh/sshd_config service sshd restart NTPsed -i “/#UseDNS yes/ c\UseDNS no” /etc/ssh/sshd_config service sshd restart 安装NTP总是个好主意,所以不妨现在添加NTP,并将它设成引导时启动(你总是可以配置该虚拟机,为XenServer充当NTP服务器,但这不在本文探讨范围之内)。yum install -y ntp# chkconfig ntpd on# service ntpd start CloudStack软件库运行下面这个命令,安装CloudStack软件库:echo “[cloudstack] name=cloudstack baseurl=http://packages.shapeblue.com/cloudstack/main/centos/4.4 enabled=1 gpgcheck=1″ > /etc/yum.repos.d/cloudstack.repo 导入ShapeBlue gpg版本密钥:(密钥ID 584DF93F,密钥指纹= 7203 0CA1 18C1 A275 68B1 37C4 BDF0 E176 584D F93F)yum install wget -y wget http://packages.shapeblue.com/release.asc sudo rpm –import release.asc 安装CloudStack和MySQL现在我们可以安装CloudStack和MySQL Server了:yum install -y cloudstack-management mysql-server 安装NFS服务器由于CSMAN虚拟机还将充当NFS服务器,我们需要设置NFS环境。运行下列命令,即可为主存储和辅助存储创建文件夹,然后将它们导出到合适的IP地址范围。mkdir /exports mkdir -p /exports/primary mkdir -p /exports/secondary chmod 777 -R /exports echo “/exports/primary 10.10.100.0/24(rw,async,no_root_squash)” > /etc/exports echo “/exports/secondary 10.10.101.0/24(rw,async,no_root_squash)” >> /etc/exports exportfs -a 我们现在需要用设置来更新/etc/sysconfig/nfs,以便激活NFS服务器。运行下面这个命令,更新所需的设置sed -i -e ‘/#MOUNTD_NFS_V3=”no”/ c\MOUNTD_NFS_V3=”yes”‘ -e ‘/#RQUOTAD_PORT=875/ c\RQUOTAD_PORT=875′ -e ‘/#LOCKD_TCPPORT=32803/ c\LOCKD_TCPPORT=32803′ -e ‘/#LOCKD_UDPPORT=32769/ c\LOCKD_UDPPORT=32769′ -e ‘/#MOUNTD_PORT=892/ c\MOUNTD_PORT=892′ -e ‘/#STATD_PORT=662/ c\STATD_PORT=662′ -e ‘/#STATD_OUTGOING_PORT=2020/ c\STATD_OUTGOING_PORT=2020′ /etc/sysconfig/nfs 我们还需要更新防火墙设置,让XenServer可以访问导出的NFS,所以运行下列命令,配置所需的设置:sed -i -e “/:OUTPUT/ a\-A INPUT -p tcp -m tcp –dport 111 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p udp -m udp –dport 111 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p tcp -m tcp –dport 2049 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p udp -m udp –dport 2049 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p tcp -m tcp –dport 2020 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p tcp -m tcp –dport 32803 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p udp -m udp –dport 32769 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p tcp -m tcp –dport 892 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p udp -m udp –dport 892 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p tcp -m tcp –dport 875 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p udp -m udp –dport 875 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p tcp -m tcp –dport 662 -j ACCEPT” /etc/sysconfig/iptables sed -i -e “/:OUTPUT/ a\-A INPUT -p udp -m udp –dport 662 -j ACCEPT” /etc/sysconfig/iptables service iptables restart 然后,我们将nfs服务设成引导时自动启动,还可以立即启动它chkconfig nfs on service nfs start 安装MySQL Serversed -i -e ‘/datadir/ a\innodb_rollback_on_timeout=1′ -e ‘/datadir/ a\innodb_lock_wait_timeout=600′ -e ‘/datadir/ a\max_connections=350′ -e ‘/datadir/ a\log-bin=mysql-bin’ -e “/datadir/ a\binlog-format = ‘ROW’” -e “/datadir/ a\bind-address = 0.0.0.0″ /etc/my.cnf 然后,我们将mysqld服务设成引导时自动启动,还可以立即启动它chkconfig mysqld on service mysqld start 确保默认安装的MySQL安全,这始终是个好主意;有一款使用方便的实用工具可以为你确保其安全。运行下面这个命令,看到提示时设置一个新的密码(当前密码将是空的),接受删除匿名用户、测试数据库和禁用远程访问等的所有默认值。mysql_secure_installation 现在我们将登录进入到MySQL,为根帐户赋予所有权限,这么做是为了可以在下一步中创建“cloud”帐户。mysql -u root -p (enter password when prompted) mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@'%’ WITH GRANT OPTION; mysql> quit 安装数据库MySQL配置完毕后,我们现在可以安装CloudStack数据库了,只要运行下面两个命令,代替你之前设置的根密码。cloudstack-setup-databases cloud:cloud@127.0.0.1 –deploy-as=root:<password> cloudstack-setup-management Nginx有一个默认的示例模板从cloud.com网站服务器下载;但由于这个测试系统无法实际访问公共互联网,我们需要为辅助存储虚拟机下载该模板提供一个办法。为此,我们将NGINX安装在CSMAN虚拟机上,并使用它托管运行我们模拟的“公共”网络上的模板。首先创建NGINX软件库,为此运行下面这个命令:echo “[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/ gpgcheck=0 enabled=1″ > /etc/yum.repos.d/nginx.repo 然后安装NGINX,为此运行下面这个命令:yum install nginx -y 现在,我们运行下面两个命令,下载XenServer的示例CentOS模板:cd /usr/share/nginx/html wget -nc http://download.cloud.com/templates/builtin/centos56-x86_64.vhd.bz2 我们需要添加防火墙规则,允许通过端口80来访问,所以运行下面两个命令:sed -i -e “/:OUTPUT/ a\-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT” /etc/sysconfig/iptables service iptables restart 最后,我们启动nginx服务,通过从Host笔记本电脑访问http://192.168.56.11/,对它进行测试service nginx start XenServer vhd-util由于我们要使用思杰XenServer作为虚拟机管理程序,我们需要下载一个特殊的实用工具,每个XenServer添加到系统上后,该实用工具将拷贝到每个XenServer。运行下面几行,即可下载文件、更新许可权限。cd /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/ wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util chmod 755 /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util 创建CloudStack默认系统虚拟机模板由于现在我们需要为辅助存储创建XenServer系统虚拟机模板,于是运行下面这个命令:/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /exports/secondary -u http://packages.shapeblue.com/systemvmtemplate/4.4/4.4.1/systemvm64template-4.4.1-7-xen.vhd.bz2 -h xenserver -F CloudStack Usage Server一个可选的步骤是安装CloudStack Usage Service,为此运行下面这个命令:yum install cloudstack-usage -y service cloudstack-usage start 定制配置为了让这个测试系统能够在4GB内存的笔记本电脑上有限的可用资源里面工作,我们需要对配置做多处改动。首先,我们需要启用使用支持非HVM(完全虚拟化)的XenServer。你将XenServer安装到VirtualBox上时,它会提醒它只支持PV(半虚拟化),而不支持HVM。为了解决这个问题,我们运行下列SQL更新命令,为云数据库中的配置表添加新的一行(记得你在安装CloudStack数据库时,代替你所使用的自己的MySQL Cloud密码)。mysql -p<password> cloud -e \ “INSERT INTO cloud.configuration (category, instance, component, name, value, description) VALUES (‘Advanced’, ‘DEFAULT’, ‘management-server’, ‘xen.check.hvm’, ‘false’, ‘Shoud we allow only the XenServers support HVM’);” 下列MySQL命令更新各种全局设置,并更改分配给系统虚拟机的资源,那样它们可以在有限的可用资源里面工作。mysql -u cloud -p<password> UPDATE cloud.configuration SET value=’8096′ WHERE name=’integration.api.port’; UPDATE cloud.configuration SET value=’60′ WHERE name=’expunge.delay’; UPDATE cloud.configuration SET value=’60′ WHERE name=’expunge.interval’; UPDATE cloud.configuration SET value=’60′ WHERE name=’account.cleanup.interval’; UPDATE cloud.configuration SET value=’60′ WHERE name=’capacity.skipcounting.hours’; UPDATE cloud.configuration SET value=’0.99′ WHERE name=’cluster.cpu.allocated.capacity.disablethreshold’; UPDATE cloud.configuration SET value=’0.99′ WHERE name=’cluster.memory.allocated.capacity.disablethreshold’; UPDATE cloud.configuration SET value=’0.99′ WHERE name=’pool.storage.capacity.disablethreshold’; UPDATE cloud.configuration SET value=’0.99′ WHERE name=’pool.storage.allocated.capacity.disablethreshold’; UPDATE cloud.configuration SET value=’60000′ WHERE name=’capacity.check.period’; UPDATE cloud.configuration SET value=’1′ WHERE name=’event.purge.delay’; UPDATE cloud.configuration SET value=’60′ WHERE name=’network.gc.interval’; UPDATE cloud.configuration SET value=’60′ WHERE name=’network.gc.wait’; UPDATE cloud.configuration SET value=’600′ WHERE name=’vm.op.cleanup.interval’; UPDATE cloud.configuration SET value=’60′ WHERE name=’vm.op.cleanup.wait’; UPDATE cloud.configuration SET value=’600′ WHERE name=’vm.tranisition.wait.interval’; UPDATE cloud.configuration SET value=’60′ WHERE name=’vpc.cleanup.interval’; UPDATE cloud.configuration SET value=’4′ WHERE name=’cpu.overprovisioning.factor’; UPDATE cloud.configuration SET value=’8′ WHERE name=’storage.overprovisioning.factor’; UPDATE cloud.configuration SET value=’192.168.56.11/32′ WHERE name=’secstorage.allowed.internal.sites’; UPDATE cloud.configuration SET value=’192.168.56.0/24′ WHERE name=’management.network.cidr’; UPDATE cloud.configuration SET value=’192.168.56.11′ WHERE name=’host’; UPDATE cloud.configuration SET value=’false’ WHERE name=’check.pod.cidrs’; UPDATE cloud.configuration SET value=’0′ WHERE name=’network.throttling.rate’; UPDATE cloud.configuration SET value=’0′ WHERE name=’vm.network.throttling.rate’; UPDATE cloud.configuration SET value=’GMT’ WHERE name=’usage.execution.timezone’; UPDATE cloud.configuration SET value=’16:00′ WHERE name=’usage.stats.job.exec.time’; UPDATE cloud.configuration SET value=’true’ WHERE name=’enable.dynamic.scale.vm’; UPDATE cloud.configuration SET value=’9000′ WHERE name=’secstorage.vm.mtu.size’; UPDATE cloud.configuration SET value=’60′ WHERE name=’alert.wait’; UPDATE cloud.service_offering SET ram_size=’128′, speed=’128′ WHERE vm_type=’domainrouter’; UPDATE cloud.service_offering SET ram_size=’128′, speed=’128′ WHERE vm_type=’elasticloadbalancervm’; UPDATE cloud.service_offering SET ram_size=’128′, speed=’128′ WHERE vm_type=’secondarystoragevm’; UPDATE cloud.service_offering SET ram_size=’128′, speed=’128′ WHERE vm_type=’internalloadbalancervm’; UPDATE cloud.service_offering SET ram_size=’128′, speed=’128′ WHERE vm_type=’consoleproxy’; UPDATE cloud.vm_template SET removed=now() WHERE id=’2′; UPDATE cloud.vm_template SET url=’http://192.168.56.11/centos56-x86_64.vhd.bz2′ WHERE unique_name=’centos56-x86_64-xen’; quit service cloudstack-management restart为了能够通过默认端口8096访问我们启用的Un-Authenticated API,我们需要添加一条防火墙规则。运行下列命令,允许通过防火墙访问端口8096:sed -i -e “/:OUTPUT/ a\-A INPUT -p tcp -m tcp –dport 8096 -j ACCEPT” /etc/sysconfig/iptables service iptables restart 测试用户界面给一两分钟的时间,好让cloudstack-management服务完全重启,然后登录到用户界面(UI),应该可以通过http://192.168.56.11:8080/client/,从Host笔记本电脑来访问该UI:默认的登录信息如下:用户名:admin密码:password域:<空>创建计算方案默认的Compute Offering(计算方案)并不适合这个有限的环境,于是我们需要使用下列设置,创建一个新的计算方案:名称:超小(Ultra Tiny)描述:超小– 1vCPU和128MB内存存储类型:共享式自定义:无处理器核心数量:1处理器(MHz):500内存(MB):128网络速率(Mb/s):无服务质量类型:无提供高可用性:有存储标记:无主机标记:无处理器上限:无公共:是易失性:无部署规划器:无GPU:无减少内存数量成功登录到UI后,数据库会完全部署,所以现在我们可以将内存减少到1GB,为我们的XenServer释放内存。关闭虚拟机,将设置改成1024 MB内存。XenServer虚拟机想配置XenServer,如果你在运行Windows,就需要XenCenter在本地主机上运行;但如果你的主机在运行OS X或Linux,那么你就要添加一个能运行XenCenter的Windows虚拟机。你可以从http://downloadns.citrix.com.edgesuite.net/akdlm/8160/XenServer-6.2.0-XenCenter.msi下载XenCenter。使用下列设置,为XenServer创建一个虚拟机:名称:XenServer类型:Linux版本:Red Hat(64位)虚拟处理器:2内存:1536(如果你的主机有8GB内存,可以考虑分配3072MB)硬盘:VDI – 动态– 24 GB注意:如果你同时添加所有网络,VirtualBox似乎会将它们混同起来,于是我们添加第1个网络,并安装XenServer,然后一旦完全安装完毕,我们添加额外的网络,但在这当中会出现重启。这似乎是最新版本VirtualBox(截至本文截稿时为4.3.18)的一个bug。改动设置,为第1个网络适配器分配正确的网络,如下所示:请注意:我们已将“Promiscuous Mode”(混杂模式)设成“Allow All”(允许所有)。现在安装XenServer 6.2,为此从http://downloadns.citrix.com.edgesuite.net/akdlm/8159/XenServer-6.2.0-install-cd.iso下载ISO文件,引导虚拟机。XenServer安装向导简单直观,不过你会看到警告信息,表明缺少硬件虚拟化的支持,这在意料之中,因为VirtualBox不支持该功能。接受警告,继续下一步。选择合适的区域设置,看到提示时输入下列详细信息(我们为DNS和NTP输入CSMAN虚拟机的IP;虽然本文并不探讨在CSMAN虚拟机上构建这些服务,但这为你提供了之后可以这么做的选项):启用自动精简配置:是安装源:本地介质补充包:无验证:略过密码:<password>静态IP:192.168.56.101/24(无需网关)主机名称:xenserverDNS:192.168.56.11NTP:192.168.56.11一旦XenServer安装完毕,卸载ISO,重启虚拟机。我们现在需要将分配给Dom0的内存数量改成最少推荐数量(400MB),为此只要在XenServer控制台上运行下面这个命令:/opt/xensource/libexec/xen-cmdline –set-xen dom0_mem=400M,max:400M XenServer补丁安装XenServer补丁很重要,虽然XenCenter会告知你需要什么补丁,但由于我们使用OpenSource版本的XenServer,所以我们必须通过命令行来安装补丁。幸好,有好多办法可以让这个过程实现自动化。我个人总是使用PXE来部署XenServer,而补丁的安装环节内置在我的部署过程中。不过,这不在本文探讨范围之内,但是Tim Mackey已写了一篇出色的博文,介绍如何做到这一点,详见http://xenserver.org/discuss-virtualization/virtualization-blog/entry/patching-xenserver-at-scale.html。虽然Tim的方法:每个补丁安装后重启是最佳实践,但安装所有补丁要花很长的时间,所以我在这些非生产测试环境中使用的另一种方法在https://github.com/amesserl/xs_patcher作了详细介绍。这个方法可安装所有补丁,只需要重启一次。配置文件“clearwater”现在有点过时了,应该含有下列内容(而缓存文件夹应该含有相关的补丁文件):XS62E014|78251ea4-e4e7-4d72-85bd-b22bc137e20b|downloadns.citrix.com.edgesuite.net/8736/XS62E014.zip|support.citrix.com/article/CTX140052XS62ESP1|0850b186-4d47-11e3-a720-001b2151a503|downloadns.citrix.com.edgesuite.net/8707/XS62ESP1.zip|support.citrix.com/article/CTX139788XS62ESP1003|c208dc56-36c2-4e91-b8d7-0246575b1828|downloadns.citrix.com.edgesuite.net/9031/XS62ESP1003.zip|support.citrix.com/article/CTX140416XS62ESP1005|1c952800-c030-481c-a0c1-d1b45aa19fcc|downloadns.citrix.com.edgesuite.net/9058/XS62ESP1005.zip|support.citrix.com/article/CTX140553XS62ESP1009|a24d94e1-326b-4eaa-8611-548a1b5f8bd5|downloadns.citrix.com.edgesuite.net/9617/XS62ESP1009.zip|support.citrix.com/article/CTX141191XS62ESP1013|b22d6335-823d-43a6-ba26-28793717125b|downloadns.citrix.com.edgesuite.net/9703/XS62ESP1013.zip|support.citrix.com/article/CTX141480XS62ESP1014|4fc82e62-b938-407d-a2c6-68c8922f3ec2|downloadns.citrix.com.edgesuite.net/9708/XS62ESP1014.zip|support.citrix.com/article/CTX141486一旦你给XenServer全面打上了补丁,关闭它,然后添加第2个适配器,再次要注意我们如何将“混杂模式”设成“允许所有”。启动虚拟机,然后使用XenCenter,对网卡执行“重新扫描”,以检测到这个新网卡,然后关闭,添加第3个适配器,再次要注意我们如何将“混杂模式”设成“允许所有”。启动虚拟机,然后使用XenCenter,对网卡执行“重新扫描”,以检测到这个新网卡,然后关闭,添加第4个适配器,再次要注意我们如何将“混杂模式”设成“允许所有”。启动虚拟机,然后使用XenCenter,对网卡执行“重新扫描”,以检测到最后这个网卡,然后最后一次重启,确保它们都已被激活和连接。配置XenServer网络现在我们准备配置XenServer网络。我们应该已有下列四个网络,有必要确保MAC与VirtualBox中的适配器相对应。我们需要使用一种更合乎逻辑的命名约定,为网络改名,还要创建两个存储网络,并分配VLAN,等等。首先改名,将存储网络的最大传输单元(MTU)设成9000(其余的仍然是默认的1500)。Network 0 – MGMTNetwork 1 – GUESTNetwork 2 – PUBLICNetwork 3 – STORAGE (MTU为9000)下一步,我们使用下列设置,添加主存储网络:类型:外部网络名称:PRI-STORAGE网卡:NIC 3VLAN:100MTU:9000然后,添加辅助存储网络:类型:外部网络名称:SEC-STORAGE网卡:NIC 3VLAN:101MTU:9000最后,我们为主存储网络和辅助存储网络添加IP地址,那样XenServer就能访问它们:名称:PRI-STOR网络:PRI-STORAGEIP地址:10.10.100.101子网掩码:255.255.255.0网关:<空>名称:SEC-STOR网络:SEC-STORAGEIP地址:10.10.101.101子网掩码:55.255.255.0网关:<空>这是XenServer需要的所有配置,所以现在我们可以接着部署我们的第一个区域了。不过在我们着手之前,有必要创建两个虚拟机的快照,那样万一需要,你可以恢复原状,再次启动。部署区域我们现在添加一个高级区域,为此进入到“Infrastructure/Zones/Add Zone”(基础设施/区域/添加区域),创建一个类型为“高级”的新区域,没有安全组。区域名称– TestIPv4 DNS1 – 8.8.8.8内部DNS 1 – 192.168.56.11虚拟机管理程序– XenServer访客CIDR – 10.1.1.0/24下一步,我们需要设置XenServer流量标签,以便与我们分配给XenServer上的每个网络的名称相一致,我们还要添加可选的存储网络,为此将它拖拉到物理网络上。编辑每一个流量类型,并设置下列标签:管理网络– MGMT公共网络– PUBLIC访客网络– GUEST存储网络– SEC-STORAGE然后使用下列设置,继续按区域添加向导的提示来操作公共流量网关– 172.30.0.1网络掩码– 255.255.255.0VLAN – <空>起始IP – 172.30.0.21终止IP -172.30.0.30POD设置POD名称– POD1预留系统网关– 192.168.56.1预留系统网络掩码– 255.255.255.0起始预留系统IP – 192.168.56.21终止预留系统IP – 192.168.56.30访客流量VLAN范围– 600 – 699存储流量网关– 10.10.101.1网络掩码– 255.255.255.0VLAN – <空>起始IP – 10.10.101.21终止IP – 10.10.101.30集群设置虚拟机管理程序– XenServer集群名称– CLU1主机设置主机名称– 192.168.56.101用户名– root密码– <password>主存储设置名称– PRI1范围– Cluster服务器– 10.10.100.11路径– /exports/primary辅助存储设置提供者– NFS名称– SEC1服务器– 10.10.101.11路径– /exports/secondary最后,激活区域,然后给大约5分钟的时间,好让系统虚拟机部署、默认的CentOS模板“下载”到系统中。现在你可以准备部署第一个访客虚拟机了。
5306
作者:Channing Wu链接:https://www.zhihu.com/question/19730741/answer/46355754来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。说一下,我第一次确实是在某微信公众号看到的,下面有评论说其实原出自《博物》,我这边调查了一下,确实如此。故修改之。------------------------------------我是分割线--------------------------------------------首先,如此多的赞真的很惶恐,我只是转载了一下而已,而且最初还傻傻的不知道原本出自哪里,后经评论区提醒才知道最先出自博物君。现在统一回答一下我能回答的一些问题(因为有的我自己也没种过):1. @rayJ答主,这些之后会长出果子吗?(我比较关心这个!)————这个一般是长不出的,因为毕竟是盆栽,而且很多水果的生长环境跟室内是有很大差别的。2. 长大以后怎么办?———长大了就直接准备下一盆吧,不过有时候确实会舍不得,自己养的有成就感,有感情在的。3. 杯子底必须是有洞的吗?一般能喝水的陶瓷杯能用吗————一般只要是个容器都可以,只是要注意浇水,水多了会涝,烂根。4. 为什么龙眼要每天都换水呢?难道是跟氧气含量有关?————一般种子发芽前会做有氧呼吸,换水保证含氧量。5. 大概能长多久?认真浇水大概什么时候会死?————一般一个多月最多。6. 不小心种出了枇杷,我想知道下面应该怎么办,任其生长?————枇杷很多地方都能长,而且可以结果,如果有地方的话可以考虑种在地下。如果不死的话是会结果子的。7. 你在火龙果一节说: ⋯不可泡水两天以上,否则会发芽,⋯ 你本来就想让它发芽,为什么不就醤子呢?接下来的步骤好麻烦,能不能粗放些,直接把果肉和籽一齐种下去?—————火龙果种子很小,同时也很娇嫩。如果发芽了的话在种容易伤到,然后 就死了,死了。-------------------------------------------------分割线------------------------------------------------再次感谢。。注意到 @欧小羊 的回答中没有给出具体的种植方法。我这边转一个附带种植方法的。前方多图,另有好几种本人并未亲自尝试过,而且尝试过的做出的效果也还行。看着种子慢慢的发芽,变绿,长出叶子还是很有成就感的。【龙眼森林】龙眼其实很容易种,吃龙眼时不妨把核留下来试试。龙眼泡水前需要把顶端的果肉及白色软组织剔除干净,否则以后容易招虫子。<img src="https://pic2.zhimg.com/66f1e0d3c82aca395b03113db0a22319_b.jpg" data-rawwidth="307" data-rawheight="200" class="content_image" width="307">1、泡水两天的龙眼,外壳已经逐渐裂开,需要每天换水。<img src="https://pic3.zhimg.com/57dd0764df5594381fc74f0a5cc859f6_b.jpg" data-rawwidth="422" data-rawheight="268" class="origin_image zh-lightbox-thumb" width="422" data-original="https://pic3.zhimg.com/57dd0764df5594381fc74f0a5cc859f6_r.jpg">2、约泡水一周,芽点朝上,由外往内排列种进盆器里。<img src="https://pic2.zhimg.com/782294c77dd3394670bfa784e73f859d_b.jpg" data-rawwidth="414" data-rawheight="262" class="content_image" width="414">3、每天喷两下水,一周后就开始发芽啦。<img src="https://pic3.zhimg.com/ab81a5b12db766451f3a934fb996bc0a_b.jpg" data-rawwidth="415" data-rawheight="260" class="content_image" width="415">4、十几天后,小芽就开始“比个头”。<img src="https://pic1.zhimg.com/3aa5e1563247974a3418a92cc6cfb57c_b.jpg" data-rawwidth="411" data-rawheight="553" class="content_image" width="411">5、一个月左右,小森林就长成啦。你能把它和你吃的龙眼联系到一起吗?<img src="https://pic2.zhimg.com/19abbf7e138e26269c7e5eba7317b929_b.jpg" data-rawwidth="407" data-rawheight="264" class="content_image" width="407">6、龙眼盆栽的最大观赏点就是颜色多变的叶子,新叶是红色,之后变成黄色,再变成绿色。<img src="https://pic2.zhimg.com/f8af57b6241c10b9e184d157e716a581_b.jpg" data-rawwidth="407" data-rawheight="262" class="content_image" width="407">【柠檬森林】1.吃剩的柠檬籽,水里泡一下。<img src="https://pic1.zhimg.com/3ad72c777a271783368cbbf13c9b73ac_b.jpg" data-rawwidth="410" data-rawheight="273" class="content_image" width="410">2.用镊子把表面的壳去掉。<img src="https://pic4.zhimg.com/2a22835a6a6edea7d7ff0e9859766ffb_b.jpg" data-rawwidth="411" data-rawheight="260" class="content_image" width="411">3.然后找个自己喜欢的器皿或杯子装上湿润的泥土,把种子全部摆好,小头朝上。<img src="https://pic3.zhimg.com/846635082f8f909f22c736b379b145b2_b.jpg" data-rawwidth="410" data-rawheight="270" class="content_image" width="410">4.然后上面用粗砂或小石子盖上。也可以盖上保鲜膜,2到3天喷点水,一周左右发芽。<img src="https://pic4.zhimg.com/e925532ab0c896ff487e6b3dada2cf7b_b.jpg" data-rawwidth="410" data-rawheight="267" class="content_image" width="410">5.发芽后也是2到3天喷点水保持湿润,以助生长。<img src="https://pic3.zhimg.com/901b0ec4fcd46b1652265f09777675f6_b.jpg" data-rawwidth="410" data-rawheight="274" class="content_image" width="410">6.这个是成品图了,很漂亮吧,给你的办公桌书桌增加一抹绿吧。长成这么高的话,如果嫌他太浓密也可以将他分几株到别的地方去进行培养。<img src="https://pic2.zhimg.com/96c8b88511c23a704f2c40838dfc4631_b.jpg" data-rawwidth="410" data-rawheight="322" class="content_image" width="410">【火龙果森林】火龙果成熟的果实为红色皮,内部为白肉或红肉,属肉质浆果,红皮上有狭长形肉质鳞状片,果肉中含有如芝麻大小的种籽,一粒成熟的果实中约含有仟粒的种籽,一点点火龙果肉分离的种子就足够种植出盆栽。1.将火龙果切成两半,用不锈钢汤匙轻轻将果肉刮入容器中。<img src="https://pic1.zhimg.com/ab34570fcec70ced80bd867c03f5acdc_b.jpg" data-rawwidth="500" data-rawheight="333" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic1.zhimg.com/ab34570fcec70ced80bd867c03f5acdc_r.jpg">2.果肉加水稀释后用手指轻轻搓揉,尽量使果肉与种子分开。<img src="https://pic2.zhimg.com/19d7176c8924a866fcd6c96f7c462f39_b.jpg" data-rawwidth="500" data-rawheight="331" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/19d7176c8924a866fcd6c96f7c462f39_r.jpg">3.再将稀烂的果肉倒入短丝袜,继续搓揉几下,接著就泡水1天,不可泡水两天以上,否则会发芽,隔天再继续搓揉,可使果肉全部挤出,只剩黑色的种子,看起来有点像黑芝麻。<img src="https://pic1.zhimg.com/7ce12602fb1a96de10d1cd118bb7c1e0_b.jpg" data-rawwidth="500" data-rawheight="328" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic1.zhimg.com/7ce12602fb1a96de10d1cd118bb7c1e0_r.jpg">4.将丝袜提起滤干水,可用卫生纸吸干种子上的水,取出种子平铺于盘子上,利用电风扇轻轻吹,使种子完全干燥,粒粒分离,即可开始种植。<img src="https://pic2.zhimg.com/7eadd11371e57162f29f2ae6c179f649_b.jpg" data-rawwidth="500" data-rawheight="333" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/7eadd11371e57162f29f2ae6c179f649_r.jpg">5-9.选适合的无洞的盆器,或将有洞孔的盆器填平洞口,放入无菌的培养土,约九分满,并喷洒一些水使表面上的土非常潮湿,再将种子均匀的铺撒在培养土上。<img src="https://pic3.zhimg.com/157298e439fe933cbf03f607dbb66712_b.jpg" data-rawwidth="500" data-rawheight="332" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic3.zhimg.com/157298e439fe933cbf03f607dbb66712_r.jpg"><img src="https://pic1.zhimg.com/3a49f1bf03b1e3c70948163cd31fbe64_b.jpg" data-rawwidth="500" data-rawheight="332" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic1.zhimg.com/3a49f1bf03b1e3c70948163cd31fbe64_r.jpg"><img src="https://pic4.zhimg.com/1e6412c38408638b6cd5661444530237_b.jpg" data-rawwidth="500" data-rawheight="334" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic4.zhimg.com/1e6412c38408638b6cd5661444530237_r.jpg"><img src="https://pic1.zhimg.com/5ab20e92e1592a0e2ad9e6beeec03364_b.jpg" data-rawwidth="500" data-rawheight="333" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic1.zhimg.com/5ab20e92e1592a0e2ad9e6beeec03364_r.jpg"><img src="https://pic2.zhimg.com/71a4a8e9f1676811cbe6b8e9893252ed_b.jpg" data-rawwidth="500" data-rawheight="332" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic2.zhimg.com/71a4a8e9f1676811cbe6b8e9893252ed_r.jpg">10.在种子上喷水几次后,用保鲜膜包起来,可保持表面潮湿,然后每天掀开来喷水一次,直到长出新芽后才完全掀开。<img src="https://pic3.zhimg.com/d858c7525b964df7863c32723133f99e_b.jpg" data-rawwidth="500" data-rawheight="333" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic3.zhimg.com/d858c7525b964df7863c32723133f99e_r.jpg">11.一周后即可长满整个盆面,约有1公分高,种子的外壳会陆陆续续掉落,整盆感觉绿草如茵,欣欣向荣,绿意盎然。<img src="https://pic4.zhimg.com/34cf7aa9027112bdb786904e05c408b3_b.jpg" data-rawwidth="415" data-rawheight="362" class="content_image" width="415">12.二周后又长高一些,约有2公分高,叶子更加紧密厚实,两片叶子的颜色转为黄绿色,摆放在办公室或客厅都非常适合,有清爽舒适的感觉。<img src="https://pic1.zhimg.com/467c7c3e1b9417e5f6879649d3474878_b.jpg" data-rawwidth="385" data-rawheight="338" class="content_image" width="385">四个月左右,第二层次像仙人掌的小刺,就会开始长出来,这是六个月后的样子,变成肥肥胖胖的仙人掌,超可爱的。<img src="https://pic4.zhimg.com/03d0d2366994f3551e418834b399daaf_b.jpg" data-rawwidth="500" data-rawheight="354" class="origin_image zh-lightbox-thumb" width="500" data-original="https://pic4.zhimg.com/03d0d2366994f3551e418834b399daaf_r.jpg">【柚子盆栽】1.这是吃柚子剩下的籽哦~<img src="https://pic1.zhimg.com/bc2b6db795084f3c45d0b14af27cf510_b.jpg" data-rawwidth="593" data-rawheight="443" class="origin_image zh-lightbox-thumb" width="593" data-original="https://pic1.zhimg.com/bc2b6db795084f3c45d0b14af27cf510_r.jpg">2. 用镊子把表面的壳去掉<img src="https://pic2.zhimg.com/251cdc01ae4e9e964dd6242c4a3c17d9_b.jpg" data-rawwidth="593" data-rawheight="445" class="origin_image zh-lightbox-thumb" width="593" data-original="https://pic2.zhimg.com/251cdc01ae4e9e964dd6242c4a3c17d9_r.jpg">3.用水泡上5~7天,每天都要更换水,这样水才不会臭,籽也不会坏掉<img src="https://pic1.zhimg.com/15c907c0daf7f40a9e90599bd2ef9e70_b.jpg" data-rawwidth="593" data-rawheight="440" class="origin_image zh-lightbox-thumb" width="593" data-original="https://pic1.zhimg.com/15c907c0daf7f40a9e90599bd2ef9e70_r.jpg">4.找个自己喜欢的器皿或杯子装上湿润的泥土,将泡过的柚子籽在皿器中摆好,小头朝上。<img src="https://pic1.zhimg.com/edd742bbafb4daa2da34bd40dc2a0bc0_b.jpg" data-rawwidth="593" data-rawheight="443" class="origin_image zh-lightbox-thumb" width="593" data-original="https://pic1.zhimg.com/edd742bbafb4daa2da34bd40dc2a0bc0_r.jpg">5.上面用粗砂或小石子盖上<img src="https://pic4.zhimg.com/cc33ed7c64d3decdfa61ca9439e8abff_b.jpg" data-rawwidth="593" data-rawheight="382" class="origin_image zh-lightbox-thumb" width="593" data-original="https://pic4.zhimg.com/cc33ed7c64d3decdfa61ca9439e8abff_r.jpg">6.上面也可以盖上保鲜膜,2到3天喷点水,一周左右就发芽了<img src="https://pic3.zhimg.com/75a6e76e1d8edf1f65257b60c30e3e7e_b.jpg" data-rawwidth="593" data-rawheight="444" class="origin_image zh-lightbox-thumb" width="593" data-original="https://pic3.zhimg.com/75a6e76e1d8edf1f65257b60c30e3e7e_r.jpg">7.发了芽也是2到3天喷点水保持湿润,有助生长<img src="https://pic4.zhimg.com/25ea00923f30696769b65508190de66b_b.jpg" data-rawwidth="593" data-rawheight="738" class="origin_image zh-lightbox-thumb" width="593" data-original="https://pic4.zhimg.com/25ea00923f30696769b65508190de66b_r.jpg">8.这个是成品图,很漂亮吧,给你的办公桌、书桌增加一抹绿吧,长成这么高的话,如果嫌他太浓密也可以将他分几株到别的地方去进行培养。注意事项剥皮时不要破坏里面果实的表皮,发芽时要保证湿度,种植不可太过于密集。【萝卜盆栽】切菜时把一只好看又肥硕的胡萝卜头部忍忍心切下一大块,扔在水器中,由它疯长到这样。<img src="https://pic3.zhimg.com/aecf2ae761c09cc5f6647895fdd4bebe_b.jpg" data-rawwidth="429" data-rawheight="565" class="origin_image zh-lightbox-thumb" width="429" data-original="https://pic3.zhimg.com/aecf2ae761c09cc5f6647895fdd4bebe_r.jpg">尽量放在细长的水器中生长,叶子会笔直地向上窜得相对高,记得常换水。 长多叶子后再另取出摆放在适合的美容器中,这样造型才会比较挺拔有活力。否则它的叶子会边长边散开好象没有生气。<img src="https://pic1.zhimg.com/7ca24e5534578f72d258833d4d32c860_b.jpg" data-rawwidth="408" data-rawheight="534" class="content_image" width="408">【芋头盆栽】芋头是在阳台上种得最早的蔬菜之一,因为芋头既可以作为蔬菜种植,也可以作为观赏植物种植,它的形态类似海芋和滴水观音,摆在家中是一道美丽的风景线。<img src="https://pic2.zhimg.com/2bdedb65dff54fb0c2d4b6c19a65567d_b.jpg" data-rawwidth="493" data-rawheight="357" class="origin_image zh-lightbox-thumb" width="493" data-original="https://pic2.zhimg.com/2bdedb65dff54fb0c2d4b6c19a65567d_r.jpg">芋头管理较粗放,对土壤、水肥和光照要求不严,几乎没有病虫害,观赏时间长,可食用部位和时间也很长,非常适合想在阳台种菜的朋友试一试。种芋是在超市购买的食用芋头,用的是自配的盆栽土,种后没有再施肥,一天只接受一到二小时散射光照射,有时摆在客厅几天才出去晒一下太阳。但是不能缺水,一 天浇一到两次水,还要不时向叶面及四周喷水。第一盆芋头是在立春后不久种植的,白底蓝花瓷盆,底部有孔,30公分直径,高26公分。将盆栽土装上2/3, 将芋头芽朝上摆好覆土浇水,出苗后保持湿润,长势喜人。后期管理重点是浇水,由于底部有孔,每次浇水量有限,所以盛夏时节一天要浇两次水。第二盆是6月 17号种的,有意尝试在夏天种植。纯白多边圆瓷盆,底部无孔,是利用种水仙的花盆种的,20公分直径,高16公分。盆虽然小,但由于底部无孔,芋头的特性 是不怕水,所以每天只需要浇一次水,只接将水淹没土面。【土豆盆栽】买土豆时专挑眼多的买,这样的土豆发芽率高。买回后放在塑料袋里,让它在自然条件下发芽。每个土豆上面都会有好几个小芽萌芽,有的还长出来了一些张牙舞爪的白生生的小根,啊,可以种了!<img src="https://pic1.zhimg.com/67916896ba727cde65bbde1e6d3f015c_b.jpg" data-rawwidth="494" data-rawheight="353" class="origin_image zh-lightbox-thumb" width="494" data-original="https://pic1.zhimg.com/67916896ba727cde65bbde1e6d3f015c_r.jpg">1、将一个土豆切成二至四块,每块上面一定要有芽,尽量让每块土豆上的芽眼分布均衡;2、在堆满泥土的花盆里挖一小坑,埋入土豆。3、种完后将土盖平,如太干要浇水。<img src="https://pic4.zhimg.com/5be808852b9a6ecee188fa89463dd57b_b.jpg" data-rawwidth="497" data-rawheight="352" class="origin_image zh-lightbox-thumb" width="497" data-original="https://pic4.zhimg.com/5be808852b9a6ecee188fa89463dd57b_r.jpg">
9082
前言作为IT专业人士,尤其是Help Desk,我们很多时候需要对苹果系统进行支持,比如苹果系统如何配置公司的Exchange邮箱;如何使用OC/Lync;甚至有时候出于好奇、求知,想对这个系统有所了解等等。但由于条件限制,公司不可能为工程师专门配备安装有苹果系统的电脑,所以我们可以借助VMware Workstation强大的虚拟平台,自己动手,丰衣足食。前期准备在正式开始前,请先确保满足如下几个条件:1. 计算机CPU为Intel系列 (注:AMD 系列CPU不在本文讨论范畴)2. CPU需支持硬件虚拟化和64位技术。可以使用附件工具包中的“CPU虚拟化检测工具”检查是否支持这两点。如下图所示。 (注:现在主流的CPU都支持硬件虚拟化,但是默认情况下,很多主板厂商并没有启用该功能,需要进入BIOS设置将其启用,如何启用不在本文讨论范畴) 安装最新版本的VMware Workstation软件。例如本文就选用了8.0.1版本。 (注:虽然不一定要最新的,但是最新的一定是最兼容的,能避免很多未知问题)4. 准备好MAC OS X Lion的ISO镜像、第三方系统引导工具HJMac的ISO光盘镜像、驱动程序包Darwin的ISO光盘镜像。 (注:http://bbs.winos.cn/thread-123130-1-1.html提供了附件工具包,包含MAC OS X Lion的ISO镜像的BT下载种子和其他两个工具)配置VMware Workstation1. 打开VMware workstation 8.0.1,以“自定义”方式新建一个虚拟机。如图2。 图2 (注:请不要选择“标准”方式新建虚拟机,否则后续操作没法自定义)2. “硬件兼容性”选择最新的“Workstation 8.0”。如图3。 图33. 浏览到MAC OS X Lion的ISO安装镜像文件。如图4。 图44. “客户机操作系统”选择“其他”、“FreeBSD 64-bit”。如图5。 图5 (注:MAC OS X本质上是属于FreeBSD系统,Linux系统也是发源于BSD系统)5. 为虚拟机取个名字并选择虚拟机文件要保存的路径。如图6。 图66. 选择处理器以及核心的数量。如果条件允许的话,为了提高运行速度当然是越多越好。如图7。 图77. 为虚拟机分配内存。请至少保证分配1.5G以上。如果条件允许的话,为了提高运行速度当然是越大越好。如图8。 图88. 建议“使用网络地址翻译”的网络类型。如图9。 图99. 选择SCSI控制器的类型为“LSI Logic”。如图10。 图1010. 选择“创建一个新的虚拟磁盘”。如图11。 图1111. 选择虚拟磁盘的类型为“SCSI”。如图12。 图1212. 指定虚拟磁盘的容量,建议至少20G。为了提高磁盘性能,建议选择“单个文件存储虚拟磁盘”。如图13。 图1313. 为虚拟磁盘指定一个名称。如图14。 图1414. 如图15为汇总信息,如果觉得有误可以点击“上一步”返回修改,无误的话点击“完成”。 图1515. 虚拟机创建完成后不要直接启动,还需要修改一下虚拟机设置才行。如图16。 图1616. 必须将软驱删除,否则系统会无限的重启。如图17。 图1717. 将CD/DVD光驱选择一个未使用的SCSI节点。如图18。 图1818. 为了大幅提高系统的用户体验,建议将显卡的“3D图形加速”开启。如图19。 图1919. 接下来找到MAC OS X Lion虚拟系统的目录(路径已在图7中指定),用记事本打开虚拟机的配置文件“MAC OS X Lion.vmx”。如图20。找到GuestOS = “FreeBSD-64”修改为:GuestOS = “Darwin11”。如图21。 图20 图2120. 关闭VMware Workstation后重新打开,再次编辑虚拟机设置,切换到“选项”,版本就会由原来的“FreeBSD-64 bit”变成“OS X 10.7”。如图22、23。启动虚拟机。 图22 图23 至此VMware的配置工作部分就完成了。 安装MAC OS X Lion21. 虚拟机启动后,就能看到MAC OS X Lion的安装界面了。点击“OS X Lion Install DVD”开始安装。如图24。 图2422. 从图25也可以看出MAC OS X Lion系统实际上也是基于命令行的,只不过它在命令行基础上还做了非常好的GUI界面而已。另外,还能看出MAC OS X Lion系统所用的文件系统是HFS+。 图2523. 出现各国语言文字的欢迎界面,我们选择简体中文。如图26。 图2624. 点击“继续”开始安装MAC OS X。如图27。 图2725. 同意软件许可协议。如图28。图2826. 由于硬盘没有经过初始化,所以在“请选择需要安装‘MAC OS X’的磁盘”下找不到任何磁盘。如图29。 图2927. 点击顶部的“实用工具”、“磁盘工具”。如图30。 图3028. 选择虚拟硬盘后,在“名称”处为该硬盘取个有意义的名字,如MAC OS X Disk。然后点击“抹掉”初始化硬盘。如图31。 图3129. 警告抹掉操作会将硬盘上所有数据都清除,询问是否确定抹掉。如图32。继续点击“抹掉”。 图3230. 在图33中可以看到已经创建一个名为“MAC OS X Disk”的磁盘。点击左上角的“关闭”按钮。图3331. 这个时候就能看到可用的磁盘了。选中后点击“安装”。如图34。 图3432. 和Windows类似,MAC系统也是模块化安装的。可以点击“自定”按钮选择需要安装的组件,这里保持默认就可以了。如图35。 图3533. 开始正式安装。如图36。 图3634. 经过一定的时间后,MAC OS X Lion就安装完毕了。如图37。 图3735. 重启虚拟机后会看到多出来了一个苹果Logo,表明硬盘MAC OS X Disk中已经存在了苹果系统。通过键盘上的左右按键选择它启动。如图38。 图3836. 离最终的结束安装仅有几步之遥了,还需进行一下简单的后续注册和设置工作。如图39。不过你会发现这个欢迎界面中的“继续”按钮没法点击,鼠标安全不工作。(PS:没有快捷键这点做得没有Windows好,批评一下)为什么呢?原因很简单:因为我们的虚拟机并不是真正的苹果电脑,由于兼容性等原因,我们不能使用原版的安装光盘进行系统引导。 图3937. 不能引导那该怎么办,放弃吗?当然不是!还好有高人帮我们做好了引导盘,使用附件工具包中“HJMac.iso”重新引导系统就可以了。如图40。 图4038. 重新启动虚拟机后会发现引导界面和原版的不一样了。通过键盘上的左右按键选择“MAC OS X Disk”按回车启动系统。如图41。 图4139. 再次进入注册和设置的欢迎界面,会发现“继续”按钮已经可以点击了。选择“中国”后点“继续”。如图42。 图4240. 选择键盘。如图43。 图4341. 询问是否有数据要传输到这台MAC系统,这里选择“现在不传输”。如图44。 图4442. 如果有的话就输入可以用来连接苹果商店、购物等的Apple ID,没有的话点击“继续”。如图45。 图4543. 输入注册信息,当然也可以直接留空点击“继续”。如图46。 图4644. 和Windows 7一样,需要创建第一个账号。输入相关信息后点击“继续”。如图47。 图4745. 选择时区。如图48。 图4846. 完成安装,点击“开始使用Lion”。如图49。 图4947. 输入用户密码进行登录。如图50。图5048. 终于看到激动的系统桌面了。如图51。图5149. 用内置的Safari浏览器打开我们公司的游戏官网看看,还真不赖。如图52。 图52 至此MAC OS X Lion安装部分就完成了。 安装驱动50. 为了提高虚拟机的性能,尤其是显示性能,建议安装包含驱动程序包的Darwin.iso。将其挂载到虚拟机的光驱中。如图53。 (注: 1. 熟悉VMware Workstation的应该知道,VMware中提供了一个VMware Tools的工具包用来提升虚拟机的性能,其实Darwin.iso就是一个提取出来的VMware Tools 2. Darwin.iso的下载已提供在附件工具包中,http://bbs.winos.cn/thread-123130-1-1.html提供了附件工具包) 图5351. 点击光驱,选择“安装VMware Tools”。如图54。图5452. 点击“继续”。如图55。图5553. 再次点击“继续”。如图56。 图5654. 选择要将VMware Tools安装到哪个磁盘,选好后点击“继续”。如图57。 图5755. 点击“安装”。如图58。 图5856. 输入密码。如图59。 图5957. 告知安装VMware Tools后系统需要重新启动,是否继续,点击“继续安装”。如图60。 图6058. 正在安装VMware Tools。如图61。 图6159. 安装成功后点击“重新启动”。如图62。 图6260. 再次进入系统,点击“苹果按钮”、“关于本机”就能看到基本的系统信息,如已驱动起来的显卡等。点击“系统报告”还能查看详细的设备信息。如图63。另外虚拟机也能更改分辨率了。 图63 至此在VMWare Workstation 8.0.1中安装苹果MAC OS X Lion(狮子)系统就全部结束了。本文出自 “七月” 博客,http://jiating.blog.51cto.com/4073477/740019
4896
今天在CSDN看到一个php输出空白隐形字符65279的问题,在网上找了下,发下这个65279字符是php用来标记文件是utf-8编码的,输出的时候会一起输出到客户端,导致客户端如果使用ajax得到返回值时,无法匹配字符串。php隐形字符65279解释如下:UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式。何谓BOM? "EF BB BF" 这三个字节就叫BOM,全称是"Byte Order Mard"。在utf8文件中常用BOM来表明这个文件是UTF-8文件,而BOM的本意是在utf16中用。 utf-8文件在php中输出的时候bom是会被输出的,所以要在php中使用utf-8,必须要是使用不带bom头的utf-8文件。 常用的文本编辑软件对utf-8文件保存的支持方式并不一样,使用的时候要特别留意。例如:1、使用ultraedit时,另存时会有“UTF-8”和“UTF-8 - 无BOM”两种选择。2、 window的记事本保存的是带bom的。3、EditPlus软件不同版本对utf-8的保存支持不一样,例如:2.31版本保存的是不带bom的,2.11版本保存的是带bom的。把utf-8文件头去掉的办法:1、使用ultraedit另存,选择“UTF-8 - 无BOM”2、一个很有用的php程序,放在站点根目录下运行,会把目录下全部utf-8文件的bom头去掉//remove the utf-8 boms
//by magicbug at gmail dot com
if (isset($_GET['dir'])){ //config the basedir
$basedir=$_GET['dir'];
}else{
$basedir = '.';
}
$auto = 1;
checkdir($basedir);
function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir."/".$file)) {
echo "filename
$basedir/$file ".checkBOM("$basedir/$file")." <br>";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
function checkBOM ($filename) {
global $auto;
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
if ($auto == 1) {
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return ("<font color=red>BOM found, automatically removed.</font>");
} else {
return ("<font color=red>BOM found.</font>");
}
}
else return ("BOM Not Found.");
}
function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
} 如果觉得麻烦的,也可以直接使用我们已经做好的文件:BOM清理脚本 For PHP
5212
常常的,生活中走着走着就倦了:浮云游影,沧桑世态,什么都让人灰心。那时的我,最想做的就是把自己藏起来,“躲进小楼成一统,管它冬夏与春秋”。 躲在房间里,从第一缕霞丝泻在身上,到正午的艳阳暴晒窗棂,然后就是夕阳的余晖在身边游移,我静静地坐在地板上,什么也不想,什么也不做,生命在光影中流逝。每一次灰心的过程都是一样的,在光影流离中等待着心灵的复苏;在日转星移里静望梦想的回归。 这,也许是一种休息;这应该是一种休息。 然后,当街路上的霓虹灯开始闪烁时,心底的梦想就开始雀跃了。关于怎样充实生活,怎样不断提高自己的心灵素质,怎样更深沉地去体会、去热爱生命。。。。好多好多关于生活的梦想就像春天枝头的花苞,春雨后竞相开放。 阴霾散后的天空更澄净,灰暗过后的心灵充盈力量。原来,每一次的休息都预示着一个全新的、美好的开始;放眼望去,天空更深,道路更远。 你也一定有灰暗的时候,那么就把这段过程看作是一次整装待发的休息吧——明天,启程的路定会风和日丽! 摘自:儿童文学2005年刊
5017
作者:360追日团队360追日团队官网:http://zhuiri.360.cn/报告发布日期:2017-5-130x1 前言360互联网安全中心近日发现全球多个国家和地区的机构及个人电脑遭受到了一款新型勒索软件攻击,并于5月12日国内率先发布紧急预警,外媒和多家安全公司将该病毒命名为“WanaCrypt0r”(直译:“想哭勒索蠕虫”),常规的勒索病毒是一种趋利明显的恶意程序,它会使用加密算法加密受害者电脑内的重要文件,向受害者勒索赎金,除非受害者交出勒索赎金,否则加密文件无法被恢复,而新的“想哭勒索蠕虫”尤其致命,它利用了窃取自美国国家安全局的黑客工具EternalBlue(直译:“永恒之蓝”)实现了全球范围内的快速传播,在短时间内造成了巨大损失。360追日团队对“想哭勒索蠕虫”国内首家进行了完全的技术分析,帮助大家深入了解此次攻击!0x2 抽样分析样本信息MD5: DB349B97C37D22F5EA1D1841E3C89EB4文件大小: 3,723,264影响面:除Windows 10外,所有未打MS-17-010补丁的Windows系统都可能被攻击功能: 释放加密程序,使用RSA+AES加密算法对电脑文件进行加密勒索,通过MS17-010漏洞实现自身的快速感染和扩散。 0x03 蠕虫的攻击流程该蠕虫病毒使用了ms17-010漏洞进行了传播,一旦某台电脑中招,相邻的存在漏洞的网络主机都会被其主动攻击,整个网络都可能被感染该蠕虫病毒,受害感染主机数量最终将呈几何级的增长。其完整攻击流程如下0x04 蠕虫启动安装逻辑分析1.蠕虫启动时将连接一个不存在的url: http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com a)如果连接成功,则退出程序b)连接失败则继续攻击这是一个比较奇怪的启动逻辑,起初我们猜测这个启动逻辑是蠕虫作者是为了控制蠕虫活跃度的云开关,蠕虫作者可能怕被追踪而放弃注册这个域名。另外一种可能是蠕虫作者有丰富的病毒检测对抗经验,目前的沙箱分为在线检测和离线检测两种,要做"离线病毒分析"会对沙箱环境做很多处理,在离线的情况下为了保证病毒的网络连通,可能会加入Fake DNS Responses(欺骗DNS响应)的技术,作者使用这个开关来识别沙箱环境是否有网络欺骗行为,保护蠕虫不被沙箱进一步的分析检测发现。2.接下来蠕虫开始判断参数个数,小于2时,进入安装流程;大于等于2时,进入服务流程.a)安装流程i.创建服务,服务名称: mssecsvc2.0参数为当前程序路径 –m securityii.释放并启动exe程序移动当前 C:\WINDOWS\tasksche.exe到 C:\WINDOWS\qeriuwjhrf释放自身的1831资源(MD5: 84C82835A5D21BBCF75A61706D8AB549),到C:\WINDOWS\tasksche.exe,并以 /i参数启动b)服务流程i.服务函数中执行感染功能,执行完毕后等待24小时退出.ii.感染功能初始化网络和加密库,初始化payload dll内存.a)Payload包含2个版本,x86和x64b)功能为释放资源到c:\windows\mssecsvc.exe并执行启动线程,在循环中向局域网的随机ip发送SMB漏洞利用代码0x05 蠕虫利用漏洞确认通过对其中的发送的SMB包进行分析,我们发现其使用漏洞攻击代码和https://github.com/rapid7/metasploit-framework 近乎一致,为Eternalblue工具使用的攻击包。蠕虫 SMB数据包:Eternalblue工具使用的MS17-010 SMB数据包:https://github.com/RiskSense-Ops/MS17-010/tree/master/exploits/eternalblue/orig_shellcode 文件内容在DB349B97C37D22F5EA1D1841E3C89EB4中出现orig_shellcode文件内容: DB349B97C37D22F5EA1D1841E3C89EB4 文件:0x06 蠕虫释放文件分析蠕虫成功启动后将开始释放文件,流程如下:释放文件与功能列表,如下:0x07 关键勒索加密过程分析蠕虫会释放一个加密模块到内存,直接在内存加载该DLL。DLL导出一个函数TaskStart用于启动整个加密的流程。程序动态获取了文件系统和加密相关的API函数,以此来躲避静态查杀。整个加密过程采用RSA+AES的方式完成,其中RSA加密过程使用了微软的CryptAPI,AES代码静态编译到dll。加密流程如下图所示。使用的密钥概述:目前加密的文件后缀名列表:值得注意的是,在加密过程中,程序会随机选取一部分文件使用内置的RSA公钥来进行加密,这里的目的是解密程序提供的免费解密部分文件功能。能免费解密的文件路径在文件f.wnry中0x08 蠕虫赎金解密过程分析首先,解密程序通过释放的taskhsvc.exe向服务器查询付款信息,若用户已经支付过,则将eky文件发送给作者,作者解密后获得dky文件,这就是解密之后的Key解密流程与加密流程相反,解密程序将从服务器获取的dky文件中导入Key可以看到,当不存在dky文件名的时候,使用的是内置的Key,此时是用来解密免费解密的文件使用的。之后解密程序从文件头读取加密的数据,使用导入的Key调用函数CryptDecrypt解密,解密出的数据作为AES的Key再次解密得到原文件。总结该蠕虫在勒索类病毒中全球首例使用了远程高危漏洞进行自我传播复制,危害不小于冲击波和震荡波蠕虫,并且该敲诈者在文件加密方面的编程较为规范,流程符合密码学标准,因此在作者不公开私钥的情况下,很难通过其他手段对勒索文件进行解密,同时微软已对停止安全更新的xp和2003操作系统紧急发布了漏洞补丁,请大家通过更新MS17-010漏洞补丁来及时防御蠕虫攻击。360追日团队360 追日团队(Helios Team)是360公司高级威胁研究团队,从事APT攻击发现与追踪、互联网安全事件应急响应、黑客产业链挖掘和研究等工作。团队成立于2014年12月,通过整合360公司海量安全大数据,实现了威胁情报快速关联溯源,独家首次发现并追踪了三十余个APT组织及黑客团伙,大大拓宽了国内关于黑客产业的研究视野,填补了国内APT研究的空白,并为大量企业和政府机构提供安全威胁评估及解决方案输出。已公开APT相关研究成果联系方式360追日团队官网:http://zhuiri.360.cn/邮箱:360zhuiri@360.cn
5789
最近几天频繁听说好几个好朋友和恋人分手了,有男有女,有直有弯。看到很多失恋的好朋友每天无所事事,以泪洗面,借酒消愁之类的,我是无奈伤心愤怒那个百感交集,不禁一肚子话想对朋友们说。 失恋之苦,刮骨剜心,短则数月,长则一生。如张爱玲说:“长的是痛苦,短的是一生”。 记得大学第一和女友分手的时候,每天熬夜闲走到三点不睡觉。一月份的冬天晚上,我每天都绕着紫荆五号楼下(女友宿舍)一圈又一圈的走,总是想着把她叫出来,向她认错请求原谅。每次发短信都是得到拒绝的回复。到了后来也就不发短信,还是每天绕着宿舍走。我就这样一圈又一圈的走了一整个期末的冬夜。每天白天就是在紫荆食堂四楼西侧窗户边的一个位置坐着,因为那里是我们每次一起吃饭的地方。我也会买两杯饮料,一杯她爱喝的,一杯我爱喝的,摆在我对面,设想着她还坐在那里。 那个阶段正值期末,而且我还报了托福班,最后托福没有去上,也没有考前突击,最后结果就是托福没学,期末成绩险些挂科。放假到了家里每天也是两点睡,十二点起床,爸妈也是特别担心,跟着着急。我就这样每天不学习,不健康作息的状态就这样持续了将近半年年。那个半年里,我每天都只是靠闲书度日。朋友们跟着我着急,我也不敢跟家长说我的状态,只告诉他们我很好。 后来有一天,事情转变了。偶然机会我在伟伦楼和某位事业有小成的学长(学长还比较年轻)遇到,他问我最近怎么样,我跟他说了我的情况。他说巧呀,我也失恋了。我说多久了?他说一个月。我说:“学长你不伤心么?”他说:“我当然伤心。”我说:“但是看不出来啊。”他说:“我还要做事情,拼事业,照顾爸妈,哪有时间颓废,未来的宝宝还等着我养呢。”我瞬间醒悟了。 是阿:“我还要做事情,拼事业,照顾爸妈,哪有时间颓废,未来的宝宝还等着我养呢。”从那以后,纵然我还是很伤心难过,但是每当要颓废的时候,我就对自己说师兄的那句话。渐渐的,我的一切的生活都恢复正轨。 一直到毕业,我又谈了两次恋爱,虽然最后都是以分手告终,十分难受,痛苦之情亦如当初,但是我再没有发生因为失恋痛苦而荒废学业,打乱生活节奏的事情。纵然每天咬着牙悲痛上课,也还是挺了过来。我最终在失恋期间完成了一切我该做的事情,没有让朋友担心,更没有让家人操心。我始终记得那一句:“我还要做事情,拼事业,照顾爸妈,哪有时间颓废,未来的宝宝还等着我养呢。” 智商看追求,情商看分手——把人的层次区分开来的,就是你在分手的伤心阶段处理生活的态度。如果分手颓废下去,只会进一步向离开你的人证明你的幼稚与无知。如果你幻想前男(女)友因为看到你的难受而回心转意,那真是幼儿园思维。你的颓废只会让离开你的人坚定离开你的决心,因为谁都不会愿意跟一个遇到情感挫折就会一蹶不振的窝囊废过一辈子。 男生也好,女生也好,青春年少,风华正茂,就算和恋人分手了,日子就不过了?不要动不动说他(她)是你生活的全部,没有他(她)你活不下去了什么什么的。没有他(她)的时候谁把你拉扯大,谁给你买的第一个书包,谁教导你love怎么拼写,谁告诉你三角形内角和180度,谁帮你签到,谁没事骂你二货然后一起DOTA一起去吃麻辣香锅?你挥霍着逝者憧憬的生命,浪费着老人羡慕的青春,糟蹋着爸妈辛苦的血汗钱,呻吟着朋友们听吐了的“为什么为什么为什么”,结果你他妈的告诉我这做一切仅仅是为了一个已经不关心你死活的人? 如果不想分,就去心平气且不卑不亢地挽回一次,记住只有一次,告诉他(她):“我爱你,给我一次机会好不好?”如果回答是肯定的,那就继续好好爱,对的起人家给你的机会;如果回答是否定的,那就酷一点,转身,流泪,然后咬着牙继续过日子。真爱你的人不需要第二次挽回,不爱你的人挽回一万次也没有用。 世界上没有什么比指望前男友或者前女友回头的事情更幼稚的了。不要再跟我说他(她)当年跟你海誓山盟如何如何,一辈子八辈子如何如何。他(她)没有骗过你,当时说的话是真心的,他(她)就是要以后“娶(嫁)你”,以后要对你好一辈子,因为那时候他(她)爱你;现在跟你说的话也是真心的,他(她)就是“不爱你了”,就是“已经喜欢上别人了”,因为现在他(她)不爱你了。爱情无关乎诚信,关乎诚信的是婚姻。不要拿着当年荷尔蒙催生的文字来约束你面前这个鲜活的自由人。你要他(她)如你一样实践曾经的海誓山盟,前提是他(她)当年爱你爱到跟你求婚最后领证。(我坚定的相信:爱他(她),就嫁(娶)他(她))。 朋友,你不要妄想将对方分手时候的各种“不合适”“没感觉”的理由各个击破。爱情不问因为所以,只问是否可以。爱情这事,不是个思考的活,是个冲动的活。思考万千,没感觉最后也是白扯。最终决定两个人在一起的还是感觉,而不是用Excel表格或者Stata统计出来的最优解。两个人在一起与否是任何计算机或者塔罗牌都算不出来的。如果感觉够强大持久求婚了领证了生娃了,恭喜你们修成正果;如果感觉流失到流逝,人家提分手,挽回一次没用,那就哭一场,醉一场,然后咬着嘴唇继续刷GPA去。 我们不是没心没肺不念旧情,关键是眼泪哗哗的念旧情的时候一定要健康生活下去。泪要流在书本上,不要流在酒杯里。如果你颓废下去,那是对自己爸妈朋友们的没心没肺不念旧情。有爱人的时候要好好珍惜,但是一旦爱情逝去不能挽回,我们一定要保重好自己的身体和生活,不要让正在爱我们亲人师长朋友伤心难过。还是那句话:“我还要做事情,拼事业,照顾爸妈,哪有时间颓废,未来的宝宝还等着我养呢。” 只要我们咬着牙度过了最难受最痛苦的那个阶段,以后的生活依旧美好,当然前提是你每天以泪洗面的时候手里拿着的是一本GRE红宝书而不是一瓶二锅头。等你的这份感情对你的影响彻底过去的时候,那时候你再回头望望,真是“也无风雨也无晴”。时隔多年,哪天你带着爱人和孩子一家三口或者几口,开着玛莎拉蒂郊游时候再次遇到了他(她),你会回忆起他(她)曾经带给你的甜蜜和成长,然后微微一笑,说一句:最近还好吧? 朋友,如果失恋了,最多让自己绝逼哭个三天颓废个三天,然后不管天塌地陷还是口腔溃疡都上课,看书,处理数据或者去DOTA去夜店等等做你本来该做想做的事情。如歌词里唱的:“今天哭,明天笑,不求有人能明了,一身骄傲”。然后你慢慢努力,健康生活,以后找个好伴,给爸妈生个胖孙子(女),事业有成,最终你的生活过的像新年贺词一样。等到你的孩子某天失恋了,你可以语重心长地告诉他(她):孩子,让离开你的人再关注你的唯一办法,就是你超越了他(她)梦想的生活。 最后我想说,如果你在恋爱ing,一定珍惜眼前人,不要等到失去以后再过咬着牙擦着泪写着作业的日子。如果你失恋了,那就总结经验,思考不足,感激前男(女)友给你的带来的成长,争取下次恋爱就是你最后一次。你需要做的就是尽量不要让同样的伤痛日子再经历一次。
5771
原文地址:http://spcissy.blog.163.com/blog/static/1041914220074285145556/ 11年,好象是很遥远的事情,11年可以改变一个人,所以11年前的我无论如何也不会相信有一天我会被一个“万年小学生”主宰思维。没错啊!那个叫江戸川コナン的7岁少年。TV动画14年,剧场版11年,记录又再次刷新了。真是没办法忘记他带来的感动瞬间,一幕幕在眼前掠过的时候,眼角依旧泪花点点。盼着他回来,又不希望他真的回来,被想念包围着的思绪一点点蔓延开。新一,工藤新一,你不知道你让我们有多疯狂!所以我们会记得你为你的天使做的点点滴滴,所以我们会记得你的兰凄凉而又坚强的笑容,所以我们会记得少年侦探团的天真无邪,所以我们会记得哀眼中永远抹不去的阴郁。这是你给我们的幸福,同样的,还有期待。摩天楼里,你在这边,你的兰在那边,隔着你们的,只是一堵变了型而无法打开的门,还有,兰手中的炸弹让人无法呼吸。两根线,红的或是蓝的,生或是死,拿着剪刀的你的兰手微微发抖。所以你拿起变声器,对兰说,剪吧!不论对或是错,死要死在一起啊!于是我流泪了,兰的目光坚定了。新一,你已经把自己的生命放心的交给了兰是吗?今天是你的生日,兰隔着门对你说“Happy birthday, Shinichi!”的时候你也快流泪了吧?原来,一个小小的身躯里包裹的竟然是这么强大的——我可以把它称为“爱”吗?后来,后来,不论是举枪对着你的angel,或是在犯人开枪的瞬间把她推开,你的眼里只有她的存在,你不能看到她受任何的伤害。于是我们就看到你拉着已经不记得你的兰的手,果断的躲避着犯人的枪口,用坚定的声音说:“因为我喜欢你,比地球上任何人都要喜欢!”即使在你小小身躯的背景下有多么不协调。再后来,我看见兰站在高高的摩天楼上,身上缠绕着消防水管,手中抱着的是你——江户川柯南,前面空无一物,后面是逼近的大火。你看着兰,你问她,兰姐姐,你怕吗?兰说,我当然怕,可是有柯南陪我,新一也说要我等他。然后你就看到兰的脸上的一抹寂寞的笑容,她说,我一定要活着等到新一回来。所以你就坚定了信念,脸上露出的是工藤新一的坚定,你说,一定没问题的,兰姐姐!新一的头像在身后缓缓升起:“我非常了解你现在的心情。”然后兰从惊讶到平静到微笑,我的心就这么一下的全碎了。新一,只有你吗?能给兰,还有我们坚持下去的信念,不是吗?所以兰也可以因为你说过的一句话从火车上跳下去,也只有你可以为了兰连命都不要的去救她。后来你终于出现了,在月光照耀的京都夜晚,满头大汗的出现在她的面前,看到她惊喜的表情,你只是坏坏地笑着,说了一句:“你的表情和当时一样。”就把兰,把我给融化了。手帕上的印记,兰知道了你是真的来过,那是无奈变小的你让兰再度微笑的唯一办法。可是兰毕竟是女孩子,再坚强也有脆弱的一面,可是你会原谅她吧?当她架着飞机几近崩溃的时候,你和我们一起听到兰的告白:“我喜欢你啊,新一。”你很无奈吧?兰,你的,也是我们的angel竟然是如此的坚强,又是那样脆弱。第10年的你,为救的也许不仅仅是兰,还有哀,少年侦探团,朋友们……永远没办法忘记,在《情人节的真相》里你们无助的眼神,还有后来,你对哀说的那句话:“我不愿再看见她流泪了,哪怕我从此从她的心里消失。”会吗?不会吧!否则你们又怎能这样不离不弃地陪我们走过了整整11个年头了呢?11年,以前的“新一哥哥”已经变成“新一弟弟”了,唯一不变的是我们对他的爱!不管是一直处于七岁的江户川同学也好,或是他怎么盼也不出现的真身高中生侦探工藤新一也好,会爱着他,已经成为一种习惯,像是兰的等待,或是哀的无奈。
5586
原作者:S.A.突袭,发表于:黑客X档案 高三那道鬼门关的考验,我考上了一所大学,但这是一所很普通的大学,普通的毕业就意味着失业,于是我毅然选择了休学。 刚休学的时候,我整天把自己关在家里,害怕见人,害怕见到别人那如剑的目光。后来,我实在受不了了,便收拾了东西,要回老家,回那个普通的江南水乡。父母看到我背着行李,以为我要离家出走,死活不让我出去。最后,由于我的坚持,我妈就陪我回到了老家。 老家的河很美,我总对我妈说,我投河自尽死了也值。我妈总是严厉地呵斥着让我停止这样的想法。 我总是站在老家门口的小桥上,看桥下船来船往,任那柔和的风抚摸我的脸庞,快乐的流泪。我快乐,是因为我可以享受这么美的风景;我流泪,是因为我已告别了学生时代。 刚到老家的第二天,我接到一个电话,是伟子打来的,他说他要走了,要去一个遥远的地方。 我说,我去送你。 他说,不用了。 沉默….. 伟子是我幼时的玩伴,小学时的同学,初中时的舍友,高中时的同桌。也不知道我们为什么这么有缘,这回高考也都只考上了一所学校,是同一所普通大学。只不过,他家有钱,它可以混个大学毕业,而我则不可以,因为我家里没有那么多钱让我在一所毫无用处的学校里挥霍。 上幼儿园时,我和伟子就总是撅着屁股看地上的蚂蚁,躺在草坪上看天上的浮云或星星,有时还会因为一块面包而大打出手。可孩子毕竟是孩子,打完架之后很快就会和好如初。 上小学时,我们经常不完成作业,然后告诉老师,我们忘了带了。其后果就是老师让我们站在走廊里。那时伟子总会紧握着拳头,很认真地对我说,我一定要杀了她!我说,好呀,到时候我帮你收尸。 到了初中,我和伟子在同一个宿舍,而且是上下铺,我上他下。也不知那床是从哪个历史博物馆里偷的,我一动它就晃个不停。弄得伟子早晨一迟到就对班主任说,雨霏昨晚一个劲的摇床,不让我睡。然后我的班主任就不分青红皂白的批我一顿,我比窦娥还冤呢! 那时我们虽然调皮捣蛋不听话不爱完成作业,但我们的成绩还是说的过去的,所以才考上了一所不错的高中。 在高中,我交了一个女朋友,她叫牧牧,很好听的名字,人长得也挺漂亮。伟子第一次见她时,竟瞅了半天,直到我狠狠地掐了他一下。 再后来,我和牧牧因事吵了一架,然后谁也不理谁。虽然不理,但我的心里却总是想着她。为此,我总是上课时被老师叫起来,问我一个问题,我说我不会,她便让我出去站着。伟子大力发扬助人为乐的传统美德,对我说,我们起码兄弟一场,你们的事,我帮你搞定!就这样,他开始“帮”我,最终使牧牧成了他的女朋友。 我本来听别人说过伟子和牧牧的传言,我不相信,直到那一天我看见伟子和牧牧牵着手走在大街上,我就知道,牧牧是伟子的了。于是那晚我喝的烂醉,在大街上狂吐不止,恰好碰见了伟子,她问我怎么了,我说我心痛。他夺去了我手中的酒,说,别喝了,今天你去我家睡觉,省得你爸妈生气。 我将酒夺回,使劲的喝,他一拳打在我肚子上,然后抓着我的衣服用膝盖磕我的胸口。 我推开他,问,你为什么打我? 他回答说,为情所困,值得吗? 我说,那你说兄弟和情哪个更重要? 伟子一拳打在我脸上,我在地上翻了个身,只听到他说,你该清醒清醒了,兄弟才是最重要的! 我大声嚷嚷道,那你把牧牧还给我! 他愣住了,我站起身,摇晃的站立着,拍了拍身上的土,转身就走。朦胧中,我听到他说,雨霏,你都知道了?其实爱一个人并不是过错,原谅 我,好吗? 我转身说,我现在不想见到你,你马上消失在我面前! 然后我就什么也不记得了。 当我第二天醒来时,我发现我是睡在伟子的家里,伟子在我旁边坐着,见我醒了,便让我喝解酒茶,我问他,你不上课? 他笑笑说,今天是星期天! 我也笑笑。 伟子的脸上突然显得异常忧伤,说,雨霏,昨晚…. 我打断他的话说,昨晚的事情就让它过去吧,我们还是好兄弟。 说完,我冲他笑了笑。 他也笑笑,说了声“谢谢”。 我什么也没说,只是笑,但那笑下却隐藏了无比巨大的忧伤! 后来,我总是见到伟子和牧牧在一起开心的玩,一起去喝咖啡,一起去吃麦当劳,一起去滑旱冰,还有伟子骑单车送牧牧回家。每次见到他们在一起时,我总会躲开,有时他们看到了我,让我跟他们一起玩,我也会找个借口走掉,因为我怕我会当着他们的面哭出来,所以,我会躲到一个安静的角落里默默地哭。 我是一个外强中干的人,在别人看来,我是一个无论怎样都会笑的孩子,可在我的内心深处却有着无不酸涩的涟漪。我想牧牧跟着伟子会更好,我没有伟子那么大的胆量,在漆黑的夜里送牧牧回家;我也没有伟子那样宽大的肩膀,让牧牧可以依靠;我不能像伟子一样好好照顾她,因为我总是生病,我还需要别人来照顾我。 我宁愿让牧牧快乐的活,而我则快乐地流泪——为她的快乐而快乐,为她的离去而流泪。一切痛苦我都愿承担,只要牧牧过的好。伟子说我是个傻子,傻到再心爱的女孩打自己时都会关心地问她的手疼不疼。我没理他,因为我的确是这样的。伟子每天早晨都会在牧牧家的楼下等她,然后一起上学。伟子也真是够苦的,大冬天里也要等着,到牧牧出来时,他已变成了一个雪人。我认为伟子对牧牧是真心的,要不然上次牧牧的手冻伤了,他也不会骑上单车,去各个药店里找最好的药,却因为忘了戴手套而把自己的手给冻伤了。每当看到伟子对牧牧所做的一切时,我总是很感动,我承认,那些都是我办不到的。我也感到欣慰,因为牧牧找到了属于她的幸福。 我很想你因为我爱你没你在身边我便失去了力气我一直都在相识的地方等你可你早已远去是否你已将我忘记是否你已不再回忆难道我对你的爱你从没有留意我会一直爱你直到天荒地老直到天地合一哪怕你已不再美丽我也不会放弃爱你绝不是一朝一夕 朋友们总是祝福伟子,唯独我没有,因为让我祝我爱的人和另一个男人幸福,即使杀了我,我也办不到。虽然伟子抢走了我最爱的女孩,但我们的关系却没有因此而疏远。我们还会在一起玩,只是不会让牧牧在身旁。 伟子刚和牧牧在一起的时候,我不知道该怎么做,毕竟一个是我的兄弟,另一个是我心爱的人。取谁舍谁都要付出相当大的代价。这就好像站在一个岔道口,不知哪一条路能找到宝藏一样。可到后来,我看到牧牧和伟子在一起快乐的样子时,我决定不再去打扰她,不再让她不高兴。寒来暑往,春去秋来,日子很快就过去了。一转眼,我们已濒临高考。我已经习惯了在夜里偷偷地哭,伟子也好像一直觉得愧对于我,总是对我很好。 我和伟子的成绩很糟,糟的可以在年级排名的长榜中一眼找到,因为我们总是在最后。而牧牧的成绩却异常的好,好到可以用三根手指表示她在市内的排名。为此牧牧总是让伟子好好学习,也总是教伟子做一些对于我们来说是天书的题,伟子再学会后就教我,就这样,我们共同提高。 高考很快就到了,我和伟子出乎意料地考上了大学,牧牧则考上了清华。 九月初,牧牧要去美国找她的父母,我和伟子去机场送她。她在临走前只说了句再见,就匆匆上路了。 我开玩笑的说,你小子一定要把欠我的都还清再走。 伟子淡淡的说,这一世是不行了,下一世吧,我一定还清。 什么?我很吃惊地问,怎么了? 你不知道吗?伟子说,昨天是9月11日,牧牧乘坐的飞机撞上了五角大楼,她死了…. 我感觉我心中的某样建筑“轰”的一声就倒了,眼前一片星光。 伟子说,我现在在我家的楼顶,我要去找她了,你多保重! 他说完,我便听到了呼呼的风声,还有那东西破碎的声音。 我拿着电话使劲地喊,伟子!伟子!……..可是信号已经中断。我放声大哭,仿佛看到了第二天的新闻“某男子从某某小区纵身跳下……”。 我走到小桥上,夕阳将河面映的通红,杨柳丝丝拂面,MP3中放着邓丽君的《我只在乎你》,“任时光匆匆流去我只在乎你,心甘情愿感染你的气息”。 我拿起一块石子,扔向水中,石子弹起又弹起,最终沉入水底。在它所经过之处留下了圈圈波纹。于是我想,人们总是希望自己的生活没有涟漪,可他们何尝知道,当他们不可能再有涟漪时,那便是他们的死期! 伟子,牧牧,你们走吧,黄泉之路不会孤独。 歌声中,我看到伟子和牧牧携手走向那完美的夕阳,还回头对我甜甜的笑………. 总认为我们有缘如今却阴阳相间你们走的如此突然只留下一句再见虽然你们已成过眼云烟但却永远活在我的心间不知是否有一只鸿雁可以传递我的思念天堂中的宫殿是不是飞翔的极限那一只鸿雁能不能到达你们身边请你们告诉我死亡到底是怎样的概念你们是否怀念人间河中那盛开的白莲是上天对你们的祭奠被夕阳染红的半边天见证了你们的誓言 十多年过去了,拉登大叔也已经被击毙,可是心里的痛却怎么也挥之不去。于是写下了此文以祭奠儿时的玩伴,以及短暂而又美好的回忆。