Chinaunix首页 | 论坛 | 博客
  • 博客访问: 98543
  • 博文数量: 18
  • 博客积分: 2264
  • 博客等级: 大尉
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-13 21:46
文章分类

全部博文(18)

文章存档

2010年(1)

2009年(1)

2008年(16)

我的朋友

分类: LINUX

2008-12-15 22:25:16

SystemImager® v4.0.0 Manual

Andrea Righi
Ari Jort
Austin Gonyou
Ben Spade
Brian Elliott Finley
Curtis Zinzilieta
Dann Frazier
Denise Walters
Greg Pratt
Jason R. Mastaler
Josh Aas

    最近用SystemImager软件,用到不明白的地方google一下,发现介绍的资料很少,在浏览 http://wiki.systemimager.org/index.php/Documentation时下载了PDF手册,看了一下觉得介绍得挺 全,而且内容不多。于是译了一些放上来,与人方便,与已方便。
    这个手册共10章,今天译了两章,有些粗糙,个别地方还不太通顺。

SystemImager® v4.0.0手册
肠子(changzi100) 译

第一章. SystemImager介绍

1.1. SystemImager纵揽

    SystemImager,是System Installation Suite的一部份,它能使安装GNU/Linux,软件发行,和生产部署自动进行。
    SystemImager的一个主要特征是与发行版本无关并且能支持不同种类的硬件。这允许部署任何种类的GNU/Linux发行版(标准的甚至是自定义的)到任何种类的目标机。这个项目的主要目标是轻松地部署大量的计算机。典型的环境包括计算机实验室和render farms(译者注:视觉农场,很多大片在后期制作所使用的图形渲染的工作站,类似于超级计算机),但是它已经被证实了在集群计算环境中很流行,诸如网格计算和高性能计算。
    别一个促进GNU/Linux的发行以及硬件的独立设计特征是SystemImager对基于文件的系统镜像起作用。镜像被存储为目录体系结构的文件,代表了机器的一个全面的快照,包含机器的根文件系统的所有文件及目录。镜像可以以多种方法获得,包括从标本系统(golden client)获得,或直接在SystemImager上生成
    制作镜像标准的方法包括克隆一个预装的机器,golden-client。用这种方法,使用者可以根据他的需求定制并调整golden-client的配置,检验它的正常运作,并确保镜像一旦部署,就会同golden-client一样的方式运转。通过同步一个已经更新的golden-client到镜像使增量更新成为可能,然后应用命令si_updateclient同步镜像到部署的机器上。镜像被作为主要部分存储在服务器的中央存储库中,称作image-server,并且应用不同的传输方式可以将镜像在客户中分发,如:rsync(默认),multicast(通过Flamethrower1),SSL加密rsync(应用SSH tunnel),通过BitTorrent。

1.2. 谁应该使用这个向导

这个向导是为在网络环境中安装和配置系统的系统管理员准备的。
• 使用SystemImager的受益者包括:
• 拥有Internet server farms(译者注:服务器中心,IBM提出的)的机构
• 管理很多工作站或是服务器的机构
• 用Linux做超级计算机/集群的机构
• 含有基于Linux的复杂的网格计算环境的机构
• 需要维护大量具有相同配置机器的人
• 必须自动为基于Linux的机器预装软件过程的生产机构。

1.3. SystemImager如何工作

    SystemImager允许你从golden client获得一个完整系统的镜像,golden client是手工安装的、定制的机器,对一个镜像服务器来说,它是用来保存和分发系统镜像的机器。你可以从镜像服务器中部署镜像到任何数量的客户系统中。在初始镜像部署后,你可以通过将系统与更新的镜像同步来更新客户系统。更新是快速且高效的因为只有更改过的部分被客户端摘下来。

1.3.1. 支持的发行版本

    SystemImager应用SystemConfigurator (http://wiki.systemimager.org/index.php/System_Configurator)来为特殊发行版本自定义配置自动安装的客户端。通过SystemConfigurator,SystemImager支持所有主要的GNU/Linux发行版和大部分其它的系统,包括自定义的或是内部发行版。应用“footprints”, SystemConfigurator是通过基于系统配置类型起作用的而不需要知道发行版的名称。来决定一个系统的footprint,SystemConfigurator识别在用的配置文件并将footprint同配置类型结合。然后恰当的安排设置,如主机名或是IP地址,不需要知道发行版的名称。
    因此,几乎在所有的范围里SystemImager与发行版本无关。少数除外,所有发行的具体知识存在于SystemConfigurator工具内,支持很大范围的发行版。如果你发现一个发行版不能使用SystemImager,请提出bug报告。

1.3.2. 系统需求

• 你的镜像服务器必须有足够的硬盘空间来容纳将要安装于你的客户端系统(默认存储镜像的目录是/var/lib/systemimager/images)的镜像。
• 使用相同的镜像的所有的客户端应该有相同的硬件设备。硬件可以是不同的容量,硬盘大点儿没问题,太小就有问题了。高级用户可以修改镜像中的/etc/systemimager/autoinstallscript.conf文件来调整镜像,然后用命令si_mkautoinstallscript(8)将镜像安装在有不同硬盘或是不同文件系统配置的客户端中。
• 对PXE安装,你需要有一个兼容的TFTP服务器跑在boot服务器上,通常这个机器也作为镜像/DHCP服务器。Debian在tftpd-hpa包和atftpd包中提供这样的服务,而Red Hat 7.0和之后的版本在tftp-server包中含有这个服务。H. Peter Anvin维护的tftp-hpa包提供了必需的功能。
• 另外对兼容的TFTP服务器,PXE基于network的安装仍然需要一个PXE守护进程跑在你的镜像服务器上。这个要求依赖于客户端的固件和你的DHCP服务器的容量。通常,如果镜像服务器使用的是一个最近的发行版本,那就没必要启动一个PXE的守护进程,因为最近的DHCP守护进程中包括了PXE的功能。
• 要正确的安装boot服务器的话强烈推荐使用si_mkbootserver(8)这个功具。

1.4. 名词术语

image
源自机器的根文件系统的包含文件和目录的快照。
镜像是一个可chroot的文件系统,存储在/var/lib/systemimager/images/$NAME。
例如:
• /var/lib/systemimager/images/RHEL4/
• /var/lib/systemimager/images/Ubuntu_7_04/
• /var/lib/systemimager/images/HPC_1.0/
• ...

override
Overrides可以用来管理不同的镜像。一个典型的应用就是定制一个“vanilla”(译者注:开源的web论坛软件)镜像加入一些额外的包,但是它们通常通过si_pushoverrides(8)命令来存储和分发配置文件。
Overrides默认被存放在/var/lib/systemimager/overrides/(这个目录可以在配置文件/etc/systemimager.conf中被修改)。所有的override中所定义的文件和目录像照现在的样子被正确的分发,这意味着保存所有的数据和源数据:权限,属主,时间戳等。
例如:
• /var/lib/systemimager/overrides/RHEL4/
• /var/lib/systemimager/overrides/Compute_config/
• /var/lib/systemimager/overrides/HPC_1.0_custom/
• ...

image server
一个拥有所有image和override的可以用来安装的服务器。

client
将要被自动安装已经选好(单一)的镜像的机器。

golden client
一个手工安装,用来取得镜像来部署客户端系统的定制的机器。

transport
    用来从镜像服务器发布镜像到客户端的协议。可以使用不同的方法,取决于特定的传输应用:push / pull / p2p / ...
例如:rsync, multicast, rsync over SSH, BitTorrent

autoinstall media
媒体是用来启动一个自动安装客户端开始自动安装过程。自动安装媒体可以是一个U盘,一个CDROM,网络(通过PXE),或者自动安装客户端的本地硬盘。

autoinstall script
    一个或多个脚本同镜像联系起来,每一个对应一个具体的分区/文件系统/网络配置。si_getimage(8)命令制作一个初始的自动安装脚本,之后可以重新生成,可以用不同的选项,应用si_mkautoinstallscript(8)命令。自动安装脚本(也被称为“master script”)被自动安装客户端下载并执行,执行大部分自动安装过程。自动安装脚本的名称以镜像名开始,以.master结束。例如:my_webserver_image_v1.master。

si_getimage(8)
    在镜像服务器上执行的一个命令,从golden client将系统镜像拖过来。

si_prepareclient(8)
    这个命令要在镜像服务器执行si_getimage(8)之前在golden client上先执行。

si_prepareclient(8)准备将golden client相关的信息的镜像取回并创etc/systemimager等目录,如硬盘分区设置。

si_clusterconfig(8)
    管理并显示SystemImager集群拓扑的一个工具。通过这个命令可以通知镜像服务器将哪一个image和override安装在自动安装客户端上。

si_mkdhcpserver(8)
  用来生成与SystemImager相应的/etc/dhcpd.conf文件的命令。DHCP可以用来给自动安装客户端分配IP。

si_mkdhcpstatic(8)
    用来修改/etc/dhcpd.conf文件的命令,基于通过DHCP服务器为这些客户端分配IP地址来为自动安装客户端增加静态入口。

si_mkbootserver(8)
    用来为SystemImager安装和配置网络启动的一个很有用的命令。

si_updateclient(8)
    更新或是同步客户端系统到一个新的或是已经更新了的镜像的命令,可以分发软件或和目录。

si_pushoverrides(8)
    更新或是保持同步客户端文件,从镜像服务器推进由si_clusterconfig(8)定义的override。

第二章.安装SystemImager

2.1. 它是如何工作的?

    SystemImager应用中央服务器,被称作镜像服务器,它取回一个golden client的整个系统镜像并将其部署到任何其它不同数量的客户端系统中。golden client系统是你按照自己的喜好定制的。你可以重新编译内核,安装软件,按你的喜好调整任何配置文件。si_getimage(8)命令将golden client镜像备份到镜像服务器中,用来部署其它系统。
    一旦你对客户端系统部署了初始的镜像,你可以通过将它们与镜像服务器中更新了的镜像同步来更新或是升级客户端系统。出于快速,高效和确保大量更新或是升级,只有更改了的文件被传到客户端。
  注意:除了SystemImager这种工具可以执行自动化安装外,像Red Hat的Kickstart,基于预定义的安装包清单来安装系统,或者用debootstrap从零开始制作基于Debain的系统。然而,这种基于包的安装非常有限因为它对非安装包的文件没有办法自动化安装,如果你重新编译你的内核,加入了一些非安装包的软件,或者是更改具体的配置文件,基于包安装的方法通常要求你做某种脚本或是编程来处理这些“特别案例”。

2.2. 获得SystemImager

SystemImager目前以RPM和DEB格式打包。官方软件包可以从http://www.systemimager.org/ (http://www.systemimager.org)下载。

2.3. 选一个机器作为镜像服务器

    因为SystemImager应用其它网络服务,如DHCP,用一个提供这些服务的服务器来作镜像服务器通常是一个很好的选择。另外,你选的镜像服务器要有足够的磁盘空间来容纳你要部署的镜像。SystemImager把镜像存储为非压缩的目录结构,所以快速分析golden client上的磁盘使用量将会给你一个对镜像服务器空间需求的很好的估计。如果你计划做多个同步镜像更新,烂处理器的性能将会成为您的镜像服务器的瓶颈。
    另一种可扩展且可靠的用来突破镜像服务器的带宽和性能限制的方法就是使用BitTorrent传输。应用 BitTorrent,利用点对点网络的优势,客户端上载带宽可以用来在节点之间分发镜像。更多的信息参考http://wiki.systemimager.org/index.php/BitTorrent
(http://wiki.systemimager.org/index.php/BitTorrent)。

2.4. 安装一个镜像服务器

    官方SystemImager包在文件发布系统SourceForge.net上分发,链接如下:

())。
    SystemImager依赖于System Configurator包,这个也可以在SourceForge上获得:

())。
    快速下载所有需要的包的方法是执行sis-install脚本(你的客户端要用i386架构)。

$ mkdir systemimager
$ cd systemimager
$ wget http://download.systemimager.org/pub/sis-install/install
$ chmod u+x install
$ ./install -v --download-only --tag stable --directory . \
> systemconfigurator \
> systemimager-client systemimager-common \
> systemimager-i386boot-standard systemimager-i386initrd_template \
> systemimager-server \
> systemimager-bittorrent systemimager-flamethrower

用./install —help 获得更多信息。

在镜像服务器中安装所有基本的包。在基于RPM包发行版中执行:
# rpm -ivh systemconfigurator-*.rpm \
> systemimager-common-*.rpm systemimager-server-*.rpm \
> systemimager-*initrd_template-*.rpm systemimager-*boot-standard-*.rpm

在Debian或类似Debian的发行版中执行:
# dpkg -i systemconfigurator-*.deb \
> systemimager-common-*.deb systemimager-server-*.deb \
> systemimager-initrd_template-*.deb systemimager-boot-*-standard-*.deb \

    如果你想应用BitTorrent传输安装还要安装systemimager-bittorrent包。RPM包:
# rpm -i systemimager-bittorrent-*.rpm
DEB包:
# dpkg -i systemimager-bittorrent-*.deb
    如果你想多重传输安装还要安装systemimager-flamethrower包。RPM包:
# rpm -i systemimager-flamethrower-*.rpm
DEB包:
# dpkg -i systemimager-flamethrower-*.deb

    这个包要求udpcast ()和Flamethrower(),通常在一般的发行版中都有。

    如果你的客户端有多种架构还要下载systemimager-ARCHboot-standard和systemimager-ARCHinitrd_template到你的镜像服务器中。
    启动包支持多种配置。因为不同的客户端配置要求不同的驱动,内核版本等,SystemImager允许安装不同的启动包,被称为 “启动风格”。
    每个SystemImager版本对每个支持的架构提供“标准”风格。例如,3.9.6版本应该有以下这些包:
• systemimager-boot-i386-standard_3.9.6-1_all.deb,
• systemimager-boot-x86_64-standard_3.9.6-1_all.deb,
• systemimager-boot-ppc64-ps3-standard_3.9.6-1_all.deb,
• ...

    SystemImager和它的标准启动风格支持大多数普通硬件的配置。.config文件列出了对这个内核的选项。
    你可以在任何时候应用其它风格来支持不同的客户配置,多启动风格可以被同时安装。
    你可以利用UYOK(应用自己的内核)特征制作一个与发行版本完全兼容的自定义风格。标准的风格应用支持大部分硬件设备的一般用途的内核,但明显的是他不可能支持所有出现在用户端(还要看硬件专门的驱动)的设备。由于这个原因,从3.6.x版本UYOK特征为被引进。这个特征允许应用golden client的内核在其它客户端执行安装。这个方法理论上支持所有的硬件设备。如果你发行版本的内核在客户端工作良好的话,安装也会动作良好。更多信息参考http://wiki.systemimager.org/index.php/UYOK。

2.5. 选一个机器作为Golden Client

    golden client是你想要用来做成镜像(克隆)的手工安装的且定制了的系统。

2.6. 在Golden Client上制作镜像

    为了部署,用SystemImager工具来制作一个镜像,安装配置一个Linux发行版,并且你可以让镜像中包含的任何你想要的附加的软件在系统中就像你使用的golden client一样。你将部署这个系统(或者是golden client)的镜像到其它的机器上。

2.7. 在Golden Client上安装SystemImager客户端软件

    要创建golden client,你必须安装systemimager-client包。
1.下载安装systemimager-client包

$ mkdir systemimager
$ cd systemimager
$ wget http://download.systemimager.org/pub/sis-install/install
$ chmod u+x install
$ ./install -v --download-only --tag stable --directory . \
> systemconfigurator \
> systemimager-client systemimager-common \
> systemimager-i386initrd_template

    用./install —help获得更多的信息。
    在镜像服务器中安装所有的基础软件包,在基于RPM的发行版中执行:

# rpm -ivh systemconfigurator-*.rpm \
> systemimager-common-*.rpm systemimager-client-*.rpm \
> systemimager-*initrd_template-*.rpm

在Debian或类似Debian的发行版中执行:
# dpkg -i systemconfigurator-*.deb \
> systemimager-common-*.deb systemimager-client-*.deb \
> systemimager-initrd_template-*.deb

2.8. 从零开始制作镜像

    另一个制作镜像的方法是将所有需要的软件安装一个目录中。
    System Installer,是System Installation Suite的一个组件,属于SystemImager,允许你直接将Linux安装到一个镜像中,绕过golden client这一步。System Installer包和文档可以从找到。用SystemInstaller制作镜像可以同用SystemImager工具制作的互换。你甚至可以应用发行版中的一个普通工具制作镜像,而不用SystemInstaller。这个工具必需能将一个发行版安装到一个目录中(如Debain的Debootstrap,Red Hat的kickstart或yum,SuSE的YaST等)。

2.9. 升级SystemImager

    虽然大多数方法中SystemImager的升级是自动的,你必需手工执行一些升级过程来防止丢失用户的定制。

2.9.1. 重新生成自动化安装脚本

    对每一个SystemImager版本,用si_mkautoinstallscript命令更新自动安装脚本存储在/var/lib/systemimager/scripts中。用旧的脚本可能出问题。


警告
    si_mkautoinstallscript重写了先前镜像存在的脚本。如果你对自动安装脚本(也被称做.master脚本)做了任何更改,备份这些脚本来推进移植更改的新版本。

例子 2-1. 生成新的自动安装脚本
# si_mkautoinstallscript -image myimage -post-install reboot -ip-assignment dhcp
    如果你要定制你的自动化脚本,编辑目录/var/lib/systemimager/scripts/中恰当的.master文件。

2.9.2. 移植自定义文件/etc/systemimager/rsyncd.conf到SystemImager 3.0.0

    在SystemImager 3.0.0版本之前,对/etc/systemimager/rsyncd.conf文件的更改可以直接写到文件中,但是升级容易出现问题。对3.0.0版本可以在一个保存整个升级的独立文件中更改。更多细节看si_mkrsyncd_conf(8)的man page。

2.9.3. 重新生成启动媒体

    每次升级Systemimager,你还必需升级用来启动自动安装系统的启动媒体。用si_mkautoinstallcd或者 si_mkautoinstalldisk重新生成可移动媒体。

2.9.4. 二进制tar包发生了什么?

    SystemImager 3.0.0版本不赞成二进制tar包版本并且引入了启动包特征,要求SystemImager系统的不同组件有相同种类的版本控制。不依赖于包管理系统,版本控制需要做出重大努力,所以SystemImager 3.0.0不支持没有打包的二进制。
    然而,基于make构建的系统,可以执行像install_server_all这样的命令等,这是在没有用包管理器安装时的首选方法,虽然你需要手工找出所有的安装依赖性和执行依赖性。

阅读(1215) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~