Jump to: navigation, search

Difference between revisions of "Main Page/cobbler"

Line 1: Line 1:
代码关键点:
 
100MBraw文件格式
 
data(100MB)|footer(512byte)
 
  
./vhd-util create -n parent.vhd -s 100
+
#! /bin/bash
  
100MB动态文件格式
+
# `buildenv.sh` is a script used to prepare build environment for building iso.
copyoffooter(512)|head(1024)|bat(512)|batmap(1024)|footer(512) 总共3584byte
 
bat的512计算方法:100MB/2MB(block size)=50entries->*4byte(每个地址4byte)=200byte->按照section补齐=512byte
 
batmap的计算方法:bathead(512byte)+map(512byte)
 
  
    vhd-util snapshot
+
# check os type
./vhd-util snapshot -n son.vhd -p parent.vhd
+
os_type=`cat /etc/issue | head -1 |awk '{print $1}'`
./vhd-util snapshot -n grandson.vhd -p parent.vhd
+
if [ "$os_type" != "CentOS" -a "$os_type" != "Fedora" ];then
./vhd-util query -n grandson.vhd -p
+
  echo "Sorry, not support this OS by now."
只有对一个正在使用的VHD或VHD的SNAP(VM正在运行)进行SNAPSHOT,快照文件的depth才会加1,并设置parent为进行快照的对象
+
  exit 1
代码看vhd_util_find_snapshot_target,如果给一个差分卷做快照,且差分卷是纯净的,则找查分卷的parent_locator,将其parent
+
fi
  
在100MB动态文件基础上创建增量快照
+
# prepare repo for OS
和100MB动态文件比较,快照的差别是增加了parentlocator数据,磁盘格式为:
+
if [ "$os_type" == "CentOS" ];then
copyoffooter(512)|head(1024)|bat(512)|batmap(1024)|parentlocator(1536,3个locator,存放的数据只是父镜像文件的相对地址)|footer(512) 总共5120byte
+
  wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
parentlocator就是平台码,用来表示文件格式,代码里头会产生PLAT_CODE_MACX(File URL)、PLAT_CODE_W2KU(windows系统,绝对路径)、PLAT_CODE_W2RU(windows系统、相对路径)
+
  if [ ! -f CentOS6-Base-163.repo ];then
 +
    echo "download repo file failed"
 +
    exit 1
 +
  fi
 +
  mv CentOS6-Base-163.repo /etc/yum.repos.d/
  
100MB动态vhd文件扩容到200MB
+
  wget http://ftp.sjtu.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
vhd-util resize -n parent.img -s 200 -j journal
+
  if [ ! -f epel-release-6-8.noarch.rpm ];then
-j填写什么?journal是个什么东东?
+
    echo "download repo file failed"
新增100M空间,故(1)bat条目增加100MB/2MB->50entries*4byte=200byte,第一次分配的bat空间为512byte已满足要求,batmap增加7byte,原来batmap分配的空间是512byte也满足要求。
+
    exit 1
故文件物理大小不变仍是3584byte,虚拟大小是200MB
+
  fi
 +
  rpm -ivh epel-release-6-8.noarch.rpm
 +
  rm -rf epel-release-6-8.noarch.rpm
  
vhd-util modify -n parent.img -s 314572800
+
  wget http://openstack.wiaapp.com/download/openstack-ovirt-node-deps.repo
修改文件的大小,其效果是将footer按照目的大小做了偏移,但是footer里头记录的文件大小没变,功能有问题
+
  if [ ! -f openstack-ovirt-node-deps.repo ];then
vhd-util create -n parent.img -s 100 -r #创建100M固定卷
+
    echo "download repo file failed"
vhd-util modify -n parent.img -s 314572800  #修改大小为300M
+
    exit 1
vhd-util query -n parent.img -sv #查看物理大小和虚拟大小
+
  fi
100 #虚拟大小没变
+
  mv openstack-ovirt-node-deps.repo /etc/yum.repos.d/ovirt-node-deps.repo
314572800 #物理大小变成300M
 
另外,对于动态卷都没有变化,why??????
 
  
 +
elif [ "$os_type" == "Fedora" ];then
 +
  wget http://mirrors.163.com/.help/fedora-163.repo
 +
  if [ ! -f fedora-163.repo ];then
 +
    echo "download repo file failed"
 +
    exit 1
 +
  fi
 +
  mv fedora-163.repo /etc/yum.repos.d/
  
快照现在只测试了2层的,搞明白读写后要测试多层的,或者拿个虚拟机来测试??
+
  wget http://mirrors.163.com/.help/fedora-updates-163.repo
 +
  if [ ! -f fedora-updates-163.repo ];then
 +
    echo "download repo file failed"
 +
    exit 1
 +
  fi
 +
  mv fedora-updates-163.repo /etc/yum.repos.d/
 +
fi
 +
yum clean all
  
uvp的virVhdOpen接口文件打开模式的VHD_OPEN_IO_WRITE_SPARSE这个模式是什么意思?
+
# install dependent packages for building iso.
 +
pkgs="gcc make autoconf automake gettext-devel git python-cherrypy python-cheetah libxml2-python python-imaging PyPAM m2crypto python-jsonschema rpm-build python-psutil python-ethtool sos python-ipaddr pytho
 +
n-lxml nfs-utils iscsi-initiator-utils libxslt pyparted nginx python-unittest2 python-ordereddict hardlink pykickstart createrepo livecd-tools appliance-tools appliance-tools-minimizer"
  
100MB动态vhd母卷,在此基础创建一个链接克隆子卷,然后合并链接克隆子卷到母卷
+
for pkg in $pkgs
./kvmvhd-test create parent.img 100 3
+
do
./kvmvhd-test linkclone parent.img son.img 0 #这两个步骤本质上和创建增量快照是一样的
+
  yum install -y $pkg
 +
done
  
Virtual Hard Disk Format Spec_10_18_06.doc
+
发行说明:
 +
Litevirt-hypervisor是一个完整的虚拟化平台,用户可以使用此平台快速构建虚拟化环境。
 +
 
 +
基于开源项目ovirt-node构建的轻量化、易使用、高性能虚拟化平台:
 +
轻量化:ISO镜像<200MB
 +
易使用:基于文本的GUI安装、配置界面,支持网络、存储的配置
 +
高性能:基于KVM的虚拟化平台
 +
 
 +
基于开源项目kimchi构建的虚拟化管理界面:
 +
通过WebUI快速部署镜像,使用镜像创建虚拟机
 +
 
 +
提供一键式工具,快速搭建编译镜像的环境,快速编译ISO镜像文件
 +
 
 +
补丁:
 +
Kimchi:在社区版基础上,新增“通过http协议上传镜像到服务器”功能,方便用户部署镜像
 +
 
 +
编译ISO镜像:
 +
 
 +
 
 +
安装ISO镜像:

Revision as of 13:21, 9 October 2014

  1. ! /bin/bash
  1. `buildenv.sh` is a script used to prepare build environment for building iso.
  1. check os type

os_type=`cat /etc/issue | head -1 |awk '{print $1}'` if [ "$os_type" != "CentOS" -a "$os_type" != "Fedora" ];then

 echo "Sorry, not support this OS by now."
 exit 1

fi

  1. prepare repo for OS

if [ "$os_type" == "CentOS" ];then

 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
 if [ ! -f CentOS6-Base-163.repo ];then
   echo "download repo file failed"
   exit 1
 fi
 mv CentOS6-Base-163.repo /etc/yum.repos.d/
 wget http://ftp.sjtu.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
 if [ ! -f epel-release-6-8.noarch.rpm ];then
   echo "download repo file failed"
   exit 1
 fi
 rpm -ivh epel-release-6-8.noarch.rpm
 rm -rf epel-release-6-8.noarch.rpm
 wget http://openstack.wiaapp.com/download/openstack-ovirt-node-deps.repo
 if [ ! -f openstack-ovirt-node-deps.repo ];then
   echo "download repo file failed"
   exit 1
 fi
 mv openstack-ovirt-node-deps.repo /etc/yum.repos.d/ovirt-node-deps.repo

elif [ "$os_type" == "Fedora" ];then

 wget http://mirrors.163.com/.help/fedora-163.repo
 if [ ! -f fedora-163.repo ];then
   echo "download repo file failed"
   exit 1
 fi
 mv fedora-163.repo /etc/yum.repos.d/
 wget http://mirrors.163.com/.help/fedora-updates-163.repo
 if [ ! -f fedora-updates-163.repo ];then
   echo "download repo file failed"
   exit 1
 fi
 mv fedora-updates-163.repo /etc/yum.repos.d/

fi yum clean all

  1. install dependent packages for building iso.

pkgs="gcc make autoconf automake gettext-devel git python-cherrypy python-cheetah libxml2-python python-imaging PyPAM m2crypto python-jsonschema rpm-build python-psutil python-ethtool sos python-ipaddr pytho n-lxml nfs-utils iscsi-initiator-utils libxslt pyparted nginx python-unittest2 python-ordereddict hardlink pykickstart createrepo livecd-tools appliance-tools appliance-tools-minimizer"

for pkg in $pkgs do

 yum install -y $pkg

done

发行说明: Litevirt-hypervisor是一个完整的虚拟化平台,用户可以使用此平台快速构建虚拟化环境。

基于开源项目ovirt-node构建的轻量化、易使用、高性能虚拟化平台: 轻量化:ISO镜像<200MB 易使用:基于文本的GUI安装、配置界面,支持网络、存储的配置 高性能:基于KVM的虚拟化平台

基于开源项目kimchi构建的虚拟化管理界面: 通过WebUI快速部署镜像,使用镜像创建虚拟机

提供一键式工具,快速搭建编译镜像的环境,快速编译ISO镜像文件

补丁: Kimchi:在社区版基础上,新增“通过http协议上传镜像到服务器”功能,方便用户部署镜像

编译ISO镜像:


安装ISO镜像: