记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
 
0


LiveStack 是什么?

顾名思义,用 Live 方式快速体验 OpenStack,都知道 OpenStack 是一个庞大的项目,包含很多组件,如何快速安装部署一个 OpenStack 环境,成为了很多人的困扰,同时也提升了 OpenStack 的门槛。对于一些对 OpenStack 感兴趣的人员来说他们不关心如何部署, 想快速看到 OpenStack 到底是什么?对于开发人员来说,OpenStack 的二次开发基本要求就是 OpenStack 的基础环境,虽然 DevStack 能解决开发环境问题,但是时间成本较高,很长的时间里可能在折腾 DevStack 的 bug 而导致环境出现的问题。当然你也少不了等待 DevStack 安装结束的时间,这些是非常让人痛苦的。

为此我们做了一件事,把一个 OK 的 OpenStack 环境打包成一个 ISO,基于最新的源代码版本迭代打包,这样可以一定程度解决上述的问题。

了解我们

功能?

简单实用的功能:

  • Live:LiveStack iso 下载后,在 vm 中可以像 WinPE 方式启动 LiveStack,启动后就是一个 Ubuntu 系统和安装好的 OpenStack 环境。
  • Install:完全可以把 ISO 安装到 VM、PM 中。

包含哪些 OpenStack 组件?

  • Keystone: Identity Service.
  • Glance: Image Service.
  • Cinder: Block Storage.
  • Neutron: Networking.
  • Nova: Compute Program.
  • Heat: Orchestration Program.
  • Swift: Object Storage.
  • Trove: Database as a Service.
  • Ceilometer: Telemetry.
  • Horizon: Dashboard.

有什么要求?

列出了几条,其实就要一个 ISO 就够了:

  • LiveStack ISO:从 http://livestack.org/ 网站上输入你的邮箱,系统会发送 ISO 所有版本下载地址到你的邮箱。
  • 虚拟机管理软件:只要是 64 位就可以。
  • PC、服务器:要搞到物理机器上,就需要把 ISO 刻录到 U盘或者 DVD 光盘里
  • 配置:不管是虚拟的、物理的,配置给大点,几十个服务跑在一个系统里,负载可想而知。(建议:4G/mem、10G/disk、1块网卡)
  • 记得插网线或者添加虚拟网卡

怎么用?

如果你知道 ISO, 就应该知道怎么用 LiveStack ISO,没别的就是个系统 ISO 文件而已。

LiveStack ISO 起来后?

  1. 在命令行里敲如下命令,会自动检查 OpenStack 环境状态:

    # livestack-status
    
  2. 用浏览器打开界面,登陆:

    user: admin
    pass: password
    
  3. 创建网络:LiveStack 使用了 Neutron,在创建虚拟机之前,先创建 Neutron 的网络,外部、内部,在用路由串起来。为了不影响 Trove 功能能正常使用,在创建外部、内部网络时候,记得一定要把共享的勾选上。

  4. 创建虚拟机,LiveStack 集成了神奇的 cirros 镜像,启动它吧。

  5. 网络不通?安全组策略开启 ssh、icmp 也不行?那就是虚拟机软件在作怪。

  6. 要修改 OpenStack 组件的配置文件?所有的服务都是由 Puppet 来控制,修改前要关闭 puppet 服务:

    # /etc/init.d/puppet stop
    

    关于 Puppet 的源代码在这里:

    # /etc/puppet
    

    关于 OpenStack 组件的源代码在这里:

    # /livestack/sources/   
    
  7. 剩下的就是看你怎么用了,配置?启动?(块存储、对象存储、Databases、Stack)开发?演示?

  8. 环境搞乱了,没关系,重新来一个,几分钟搞定的事情。

实现真正的 Live

Live 可以快速预览 OpenStack,不过创建的 vm、volume 什么的在下次 Live 时候就会丢失,这也是 Live 的特性。如果你有个 16GB 的 U盘,可以把 OpenStack 的数据跑在 U盘中,走哪插哪,数据不丢失,太方便了:

  1. 先把 ISO 刻录到 U盘中
  2. 把 U盘插入到一个 Linux 系统中

    挂载 U盘到系统中:

    mount /dev/sdb1 /mnt/
    

    dd 一个文件给 U盘,以后的数据就会保存在这个文件中:

    dd if=/dev/zero of=/mnt/casper-rw bs=1M count=4096
    

    格式化下这个文件:

    mkfs.ext3 /mnt/casper-rw
    

    修改 Live 启动参数,在 Live label 启动参数里添加 persistent 参数:

    vim /mnt/isolinux/isolinux.cfg
    ...
    label Boot LiveStack OS!                                                                                               
    menu label Boot LiveStack OS!                                                                                        
    kernel /casper/vmlinuz                                                                                               
    append  file=/cdrom/preseed/custom.seed boot=casper persistent initrd=/casper/initrd.gz quiet splash --
    ...
    

    卸载 U盘:

    umount /dev/sdb1
    
  3. 现在就可以持久化数据保存了,随用随插。

其它一些问题

  1. 怎么没有集群部署呢?

    定位不同、方向不同、针对人群不同,所以没有这个功能。
    
  2. 如何升级、恢复?

    不支持升级、恢复,之前测试过 aufs 来恢复环境和控制用户修改的数据,同时用打 patch 方式来升级,过程比较繁琐,后来砍掉了。
    
  3. 网络相关问题?

    可以任意在不同的局域网、跨网段使用,启动 vm 之前相应创建好当前网络环境的 Neutron 网络。
    
  4. 创建 Trove 数据库出现问题?

    Trove 不支持 Flavor uuid 格式,检查 flavor id 有没有 uuid,同时在创建 flavor 时候,id 栏里填写成数字。
    
  5. LiveStack 修改网络 IP 地址,LiveStack 本身采用的 DHCP 方式,如果想设置静态 IP 地址需要做如下修改( IP 地址为 192.168.1.100,网关为 192.168.1.1):

    vim /etc/puppet/files/neutron/etc/interfaces
    ...
    auto br-ex
    iface br-ex inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 192.168.1.1 8.8.8.8
    

    修改完后,Puppet 会自动同步配置文件,并重启网络服务。

  6. Trove 的 Ubuntu 镜像密码是什么?

    user: root
    pass: thstack.com
    

问题反馈

如果在使用过程中遇到任何问题或各种吐槽、攻击,可以通过各种联系方式找到我:

  1. QQ

    421192984
    
  2. email

    longgeek@thstack.com
    livestack@thstack.com
    
  3. Weibo

    @Longgeek
    
  4. 深圳 OpenStack 社区

    QQ 群:134874842
    


转载请标明出处【 Live ISO | USB OpenStack】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论