首页 > 代码库 > kvm tboot和libvirt的安装

kvm tboot和libvirt的安装

参考:http://www.ibm.com/developerworks/cn/aix/systemmaga/8/New_Way_Secure_Cloud/index.html(tboot)

https://en.wikipedia.org/wiki/Trusted_Execution_Technology(txt技术)

tboot简介:

为什么会使用到这种技术请参考第一个链接。

tboot全称trusted boot翻译过来就是可信的引导,它是基于txt(trusted Excution Technology)技术对要启动的宿主系统进行可信的检测,具体的技术实现细节参考以上两个链接。既然要对系统启动进行检测,那么显然,tboot要在内核启动之前启动,因为我这里的系统是借助于grub引导,所以我的实验是修改grub.conf从而更换启动顺序,如果有用其他程序引导的,请根据实际情况修改。

txt技术需要硬件支持,而且依赖于vt和vt-d技术,所以开启功能时也需要开启这两个,还有一个是tpm(trusted platform module可信平台模块),这个用来保存软件的指纹信息,每次软件启动时都会检测并对比这些指纹信息是否一致,从而判断是否存在风险。

tboot的安装使用:

1.开启txt技术的功能

bios选项位于:Advanced-->Processor Configuration-->Intel(R) TXT

vt和vt-d:Advanced-->Processor Configuration--> Intel(R) Virtualization Technology 和 Intel(R)VT for Direct I/O

tpm:Security -->TPM administartive Control

2.内核支持

[root@cqhdtest ~]# grep -i -E "txt|tcg|iommu|virtual|tpm"  /boot/config-2.6.32-431.el6.x86_64 查看

CONFIG_HAVE_INTEL_TXT=y

CONFIG_GART_IOMMU=y

CONFIG_CALGARY_IOMMU=y

# CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT is not set

CONFIG_AMD_IOMMU=y

CONFIG_AMD_IOMMU_STATS=y

CONFIG_IOMMU_HELPER=y

CONFIG_IOMMU_API=y

CONFIG_TCG_TPM=y

CONFIG_TCG_TIS=y

CONFIG_TCG_NSC=m

CONFIG_TCG_ATMEL=m

CONFIG_TCG_INFINEON=m

# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set

CONFIG_FB_VIRTUAL=m

# CONFIG_DEBUG_VIRTUAL is not set

# CONFIG_IOMMU_DEBUG is not set

# CONFIG_IOMMU_STRESS is not set

ONFIG_INTEL_TXT=y

CONFIG_VIRTUALIZATION=y

CONFIG_TCG_TPM=y

3.安装tboot

yum install tboot -y 

4.修改grub.conf

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.32-431.el6.x86_64)

root (hd0,0)

kernel  /tboot.gz logging=vga,serial,memory

module /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=c492ad38-5c04-46e2-bddb-7b05428e16fa rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

module /initramfs-2.6.32-431.el6.x86_64.img

module /WSM_SINIT_100407_rel.bin

这里grub引导程序首先加载tboot.gz,而元贝的kernel和initrd都改为以模块方式启动,WSM_SINIT_100407_rel.bin是当前系统的SINIT AC模块,需要到硬件供应商那去索取,也可以选择不要这个模块的功能,不进行加载

5.获取可信平台的所有权

modprobe tpm_infineon #这个是tpm的硬件驱动,有的是tpm_tis等

tcsd #启动tpm守护进程

6.查看txt执行状态

txt_stat  部分结果如下:

***********************************************************

TXT measured launch: TRUE

secrets flag set: TRUE

***********************************************************

libvirt简介:参考:http://libvirt.org/ 

假设这么一种场景:我们不懂英语,而又想跟美国人做交易,那么我们有什么方法解决呢?一种是我们自学英语,这无疑是比较浪费时间的;而另一种就是请个翻译过来,这个就快捷多了。

libvirt的角色就是类似于上述场景的翻译,上层用户空间直接和hypervisor打交道会比较复杂,而libvirt则是屏蔽了底层hypervisor的细节,为上层管理工具提供了一个统一的,较稳定的接口(api)。而且这个libvirt还是上述场景中精通多种语言的翻译,支持多种虚拟化方案,比如kvm、xen、LXC等等。

技术分享

libvirt的几个重要概念如下:

节点(node):其实就是一个物理机器,上面可能运行多个虚拟机

hypervisor:也称vmm,就是kvm,xen等实现虚拟化的软件

domain:就是一个虚拟机,也称为instance(实例)

libvirt的安装:

yum install libyajl yajl-devel libxml* device-mapper* libpciaccess-devel libnl-devel -y

wget  http://libvirt.org/sources/libvirt-2.5.0.tar.xz

tar xf libvirt-2.5.0.tar.xz

cd  libvirt-2.5.0

./configure --help

./configure  --prefix=/usr/local/libvirt

make && make install

libvirt的安装很简单,主要是configure 会提示缺少很多库,此时可以 yum  list all |grep  "lib_keyword" 查看库的关键字,查找对应的库安装即可,yum里面是我的系统缺少的,总结出来以供参考。


kvm tboot和libvirt的安装