从无到有,搭建一个简单版的JAVA PAAS云平台 (二)

2014-11-24 08:22:12 · 作者: · 浏览: 1
机名
--vgname :卷组名称,这个一定要有,默认名称为lxc,可以单独指定。若不指定此选项,则要求名称为lxc的卷组已经存在,否则,请指定已经卷组名。
--fstype :文件系统类型,默认为ext4类型
--fssize :磁盘容量,默认为1G,单个应用所占有磁盘空间,一般安装之后,除了系统文件等,也就剩下500M作用可以使用。
简化后的命令:
lxc-create -t ubuntu -n s4 –f /etc/lxc/lxc_min.conf -B lvm
指定lvm创建的虚拟机磁盘文件位置为 /dev/lxc/s4
第一次安装,会耗费些时间,需要从网络上下载一些软件包进行安装,若没有网络的话,会很惨。第二次安装之后,一些软件包被缓存了之后,会很快的。
另外指定磁盘格式为lvm,创建时,将十分消耗内存。
此虚拟机为最小安装方式,相当绿色,可能会缺失一下软件包,需要登陆进入之后进行安装。
启动虚拟机
lxc-start -n s4 -d
注意一定要加 -d 参数,标记为后台运行,否则,将不太利于管理了。
登录管理
lxc-console -n s4
lxc-console到了SSH的效果,默认的用户名和密码都是ubuntu,输入之后,正常管理。
退出管理
ctrl + a ,然后敲入字母q,即可退出当前系统s4。
SSH连接
登陆进入之后,通过ifconfig命令获得IP地址,使用SSH可连接。
ssh www.2cto.com
hostname解析
建立一个虚拟机之后,登陆进去之后才能够获得IP,下次重启,动态IP可能会变化,对维护操作带来不便。在创建虚拟时,我们已经指定了虚拟机名称,同时也是虚拟hostname的名称,通过虚拟机hostname建立SSH连接最是方便了。
一般采用:
vi /etc/resolv.conf
nameserver 10.0.3.1
nameserver 8.8.8.8
一定要注意顺序,nameserver 10.0.3.1用以解析虚拟机,下面一条随便填写,只要能够使用即可。这里使用免费的8.8.8.8替代。
nslookup s4 & ping s4
测试是否解析正常。
但是一旦系统重启,上述配置会消失,补救:
#vi /etc/resolvconf/resolv.conf.d/tail
nameserver 10.0.3.1
nameserver 8.8.8.8
保存,使之生效:
#/etc/init.d/resolvconf restart
这样下次重启宿主机,可以不用担心DNS失效。
以下方法,可以不用去做:
可不用修改LXC虚拟机s4的 /etc/dhcp/dhclient.conf 配置文件
send host-name "s4";
当然,修改后,需要生效之:
/etc/init.d/networking restart
SSH正常连接
ssh ubuntu@s4
在宿主机下基于SSH使用scp命令执行文件传输等,或执行管理维护命令:
#scp jdk-6u33-linux-i586.bin ubuntu@s4:/home/ubuntu
#scp apache-tomcat-7.0.27.tar.gz ubuntu@s4:/home/ubuntu
在S4中安装JDK之后,设置环境变量:
ubuntu@s4:~$sudo vi /etc/environment
JAVA_HOME=/usr/java/jdk1.6
CLASSPATH=/usr/java/jdk1.6/lib
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME/bin:$CLASSPATH"
export PATH
保存退出,然后执行:
ubuntu@s4:~$sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.6/bin/javac 1071
ubuntu@s4:~$sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.6/bin/java 1071

同时设置tomcat解析到s4的/home/ubuntu目录下,mv改名为tomcat,注意设置.sh脚本的启动权限。
安装好JDK,设置tomcat开机自动运行的脚本/etc/init.d/tomcat (后面没有.sh后缀,参考原文,需翻*墙)
#sudo vi /etc/init.d/tomcat
完整内容:
#!/bin/sh
#tomcat auto-start
#export JAVA_HOME=/usr/lib/jvm/java-1.6.0-sun // 已设置JAVA_HOME了,此句可省略。
case $1 in
start)
sh /home/ubuntu/tomcat/bin/startup.sh
;;
stop)
sh /home/ubuntu/tomcat/bin/shutdown.sh
;;
restart)
sh /home/ubuntu/tomcat/bin/shutdown.sh
sh /home/ubuntu/tomcat/bin/startup.sh
;;
*)
echo 'Usage:tomcat7 start|stop|restart'
;;
esac
exit 0
添加到启动项中:
#sudo chmod +x /etc/init.d/tomcat ; sudo update-rc.d tomcat defaults
关闭,便于后面克隆等操作:
#sudo lxc-stop –n s4
虚拟机克隆
上面虚拟机s4安装好之后,执行快速的克隆操作:
lxc-clone -o s4 -n s5 -s -L 1000M
-s 要克隆的景象快照,虚拟机s5和虚拟机s4保持一致了
-L 虚拟机s5的文件系统大小,默认为2G。这里指定和S4一样的文件系统容量。
虚拟机s4使用lvm管理磁盘,克隆后的s5自然也使用LVM,位置位于 /dev/lxc/s5。
这样,克隆出来的S5就对应一个具体的Tomcat Servlet平台。
克隆的速度比创建的速度就是快,5秒之内搞定。
启动s5
lxc-start –n s5 –d && ssh ubuntu@s5
输入java –version可以看到java已经安装成功,tomcat的目录为 /home/ubuntu/tomcat,执行启动脚本:
/home/ubuntu/tomcat/bin/start.
删除/注销
lxc-destroy -n s7 -f
-f 参数可以强制销毁正在运行中的虚拟s7
虚拟机自动启动
把虚拟s5设置为自动启动:
ln -s /var/lib/lxc/s5/config /etc/lxc/auto/s5.conf
下次宿主机重启,s5会自动启动。其它虚拟机设置于此类同。
按照以上办法,克隆s6,s7更多的虚拟机,执行SSH连接,部署WAR包,重启tomcat等,这一切操作可以在宿主机上创建一个sh脚本执行。
注意事项
lxc暂时还不能直接查看内存,CPU等信息,通过free、top或/proc/meminfo、/proc/cpuinfo 是不准确的,看到的都是宿主机的信息。
要想查看,到/sys/fs/cgroup/*/lxc/虚拟机名称下/查看。
查看虚拟机s5当前内存:
#cat /sys/fs/cgroup/memory/lxc/s5/m