当前位置:首页>开发>正文

如何导出openstack镜像 openstack怎么使用vmdk镜像

2023-04-18 12:38:01 互联网 未知 开发

 如何导出openstack镜像 openstack怎么使用vmdk镜像

如何导出openstack镜像

一、思路就4步:
1、创建镜像文件
2、用nova-compute自带的kvm,启动.iso文件,用vncviewer完成OS的安装过程
3、OS安装完毕,停止虚拟机,kvm重启镜像,安装必要的软件
4、后续:上传镜像到云中

二、镜像制作指导

很多源都有为OpenStack已经编译好的各种镜像了,您可以直接下载并通过使用这些镜像来熟悉OpenStack。
不过如果是为生产环境进行部署的话,您一定需要构建含有定制软件或配置的镜像文件。本章将引领您完成几种较为流行的Linux发行版镜像,最后也将制作一份Windows的镜像。

由不同的Linux发行版制作镜像时,过程几乎一样,仅有微小的差别而已。由于含有cloud-ini软件包,人们用Ubuntu系统制作镜像文件变得非常容易。Cloud-init软件在实例运行时能够自动维护实例配置,也将为无密码登陆完成密匙导入以及完成设置主机名等任务。每个实例都将通过169.254.169.254的元数据接口,从nova运算中读取特定的配置。
如果您制作发行版不含有诸如cloud-init此类的软件包,您就需要自行完成密匙导入等操作了。说来也简单,只需向rc.local文件中添加相关命令即可。

openstack怎么使用vmdk镜像

操作步骤如下:
1 先使用vmware 提供的vmware-diskmanager将vmare虚拟文件进行一次转换
vmware workstaion自带了这个工具,可以直接在安装有vmware workstaion的主机上进行转换操作,如果没有则可以从网上进行下载。我是在在另外一台订同的vmware workstation中获取的。
操作指令:vmware-vdiskmanager.exe -r 需要转换的源文件.vmdk -t 0 需要转换的目标文件.vmdk
2 将转换后的目标文件上传至 crontroller 服务器,再使用openstack自带的qemu-img 将其格式转换为qemu-img的格式
操作指令:qemu-img convert -f vmdk -O qcow2 上传的虚拟文件.vmdk 转换后的目标文件.qcow 3 在操作平台上添加镜像文件,将源文件选择为转换后的qcow2文件,这样就可以成功创建主机。

openstack官方镜像centos7密码是多少

支持修改密码
默认OpenStack的Dashboard修改虚拟机的密码的功能是关闭的,你需要enable。我是使用RDO安装。
编辑 /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py
# The OPENSTACK_HYPERVISOR_FEATURES settings can be used to enable optional
# services provided by hypervisors.
OPENSTACK_HYPERVISOR_FEATURES = {
can_set_mount_point: False,
can_set_password: True,
}

重启httpd服务
systemctl restart httpd.service

这时候你就可以看到设置管理员密码的地方

不过这个时候,你可能还是不能修改密码。你需要修改计算节点的nova.conf文件
[libvirt]

# Inject the admin password at boot time, without an agent.
# (boolean value)
#inject_password=false
inject_password=True

这样重启服务,应该就可以。
openstack-service restart nova

Cirros
这是一个大家在OpenStack测试非常喜欢使用的镜像,小于15M,测试起来非常方便。
官方下载地址 https://download.cirros-cloud.net/
这个镜像的用户名和密码
user:cirros
pass:cubswin:)

你可以在Horizon的vnc登录或者通过SSH登录。
如果你通过Horizon设置密码,其实就是设置Cirros镜像的root的密码,设置完成后,你可以在控制台或者SSH,使用root和你设置的密码登录。
如果你希望使用秘钥,用root身份登录,那么默认是不行的,你会客户端看到提示
Please login as cirros user, not as root

如果你使用cirros用户登录,你会发现其实root的目录下也注入的公钥,只是
$ sudo ls /root/.ssh/
authorized_keys
$ sudo cat /root/.ssh/authorized_keys

# The following ssh key was injected by Nova
command="echo Please login as cirros user, not as root echo sleep 10" ssh-rsa
ofEJnEpgbTIuO1Wc5vTs/cMuPmaJ7x6dAX2vg84LkRyX1dDzvQ8nD/tYpFYnSjzrh72N7tMm76GAaR
HzMxg3uNMGVk wXCBU/Ffm1vE1A5uQ== root@node1$

在公钥里加入一行,导致root无法登录。我们可以通过Horizon提供的user data的功能,实现root登录

#!/bin/sh
cp -f /home/cirros/.ssh/authorized_keys /root/.ssh/

其实就是把cirros的公钥,复制到root的目录下。这时候创建出来的虚拟机就可以直接使用root登录,没有任何的遗憾。

如何用openstack创建windows server 2008镜像?

在ubuntu 12.04中制作

1.下载virtio

http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-30.iso

2.下载windows server 200
本例中镜像名称为windows2008.iso

3.

kvm-img create -f qcow2 windowsserver.img 20G

4.

kvm -m 1024 -cdrom windows2008.iso -drive file=windowsserver.img,if=virtio -boot d -drive file=virtio-win-0.1-30.iso,index=3,media=cdrom -device virtio-net-pci

-net nic -net user -nographic -vnc :
5. 新打开一个ternal

vncviewer localhost:
6.

默认不识别硬盘,网卡。点击Load Driver,选择

选择第二个CDROM,依次Vista, win7,wlh,加载x86的驱动

openstack的问题。


OpenStack其实有三个与存储相关的组件,这三个组件被人熟知的程度和组件本身出现时间的早晚是相符的,按熟悉程度排列如下:
Swift——提供对象存储 (Object Storage),在概念上类似于Amazon S3服务,不过swift具有很强的扩展性、冗余和持久性,也兼容S3 API
Glance——提供虚机镜像(Image)存储和管理,包括了很多与Amazon AMI catalog相似的功能。(Glance的后台数据从最初的实践来看是存放在Swift的)。
Cinder——提供块存储(Block Storage),类似于Amazon的EBS块存储服务,目前仅给虚机挂载使用。
(Amazon一直是OpenStack设计之初的假象对手和挑战对象,所以基本上关键的功能模块都有对应项目。除了上面提到的三个组件,对于AWS中的重要的EC2服务,OpenStack中是Nova来对应,并且保持和EC2 API的兼容性,有不同的方法可以实现)
三个组件中,Glance主要是虚机镜像的管理,所以相对简单;Swift作为对象存储已经很成熟,连CloudStack也支持它。Cinder是比较新出现的块存储,设计理念不错,并且和商业存储有结合的机会,所以厂商比较积极。
Swift
关于Swift的架构和部署讨论,除了官方网站,网上也有很多文章,这里就不重复.(也可以参考我之前在OpenStack中国行活动中上海站演讲的PPT)。从开发上看,最近也没有太大的结构性调整,所以我想主要说说比较适用的应用领域好了。
从我所了解的实际案例来看,Swift出现的领域有4个,(应该还有更多,希望大家看到实际用例能够指教)
1.网盘。
Swift的对称分布式架构和多proxy多节点的设计导致它从基因里就适合于多用户大并发的应用模式,最典型的应用莫过于类似Dropbox的网盘应用,Dropbox去年底已经突破一亿用户数,对于这种规模的访问,良好的架构设计是能够支撑的根本原因。
Swift的对称架构使得数据节点从逻辑上看处于同级别,每台节点上同时都具有数据和相关的元数据。并且元数据的核心数据结构使用的是哈希环,一致性哈希算法对于节点的增减都只需重定位环空间中的一小部分数据,具有较好的容错性和可扩展性。另外数据是无状态的,每个数据在磁盘上都是完整的存储。这几点综合起来保证了存储的本身的良好的扩展性。
另外和应用的结合上,Swift是说HTTP协议这种语言的,这使得应用和存储的交互变得简单,不需要考虑底层基础构架的细节,应用软件不需要进行任何的修改就可以让系统整体扩展到非常大的程度。
2.IaaS公有云
Swift在设计中的线性扩展,高并发和多租户支持等特性,使得它也非常适合做为IaaS的选择,公有云规模较大,更多的遇到大量虚机并发启动这种情况,所以对于虚机镜像的后台存储具体来说,实际上的挑战在于大数据(超过G)的并发读性能,Swift在OpenStack中一开始就是作为镜像库的后台存储,经过RACKSpace上千台机器的部署规模下的数年实践,Swift已经被证明是一个成熟的选择。
另外如果基于IaaS要提供上层的SaaS 服务,多租户是一个不可避免的问题,Swift的架构设计本身就是支持多租户的,这样对接起来更方便。
3.备份归档
RackSpace的主营业务就是数据的备份归档,所以Swift在这个领域也是久经考验,同时他们还延展出一种新业务--“热归档”。由于长尾效应,数据可能被调用的时间窗越来越长,热归档能够保证应用归档数据能够在分钟级别重新获取,和传统磁带机归档方案中的数小时而言,是一个很大的进步。
4. 移动互联网和CDN
移动互联网和手机游戏等产生大量的用户数据,数据量不是很大但是用户数很多,这也是Swift能够处理的领域。
至于加上CDN,如果使用Swift,云存储就可以直接响应移动设备,不需要专门的服务器去响应这个HTTP的请求,也不需要在数据传输中再经过移动设备上的文件系统,直接是用HTTP 协议上传云端。如果把经常被平台访问的数据缓存起来,利用一定的优化机制,数据可以从不同的地点分发到你的用户那里,这样就能提高访问的速度,我最近看到Swift的开发社区有人在讨论视频网站应用和Swift的结合,窃以为是值得关注的方向。
Glance
Glance比较简单,是一个虚机镜像的存储。向前端nova(或者是安装了Glance-client的其他虚拟管理平台)提供镜像服务,包括存储,查询和检索。这个模块本身不存储大量的数据,需要挂载后台存储(Swift,S3。。。)来存放实际的镜像数据。
Glance主要包括下面几个部分:
l API service: glance-api 主要是用来接受Nova的各种api调用请求,将请求放入RBMQ交由后台处理,。
l Glacne-registry 用来和MySQL数据库进行交互,存储或者获取镜像的元数据,注意,刚才在Swift中提到,Swift在自己的Storage Server中是不保存元数据的,这儿的元数据是指保存在MySQL数据库中的关于镜像的一些信息,这个元数据是属于Glance的。
l Image store: 后台存储接口,通过它获取镜像,后台挂载的默认存储是Swift,但同时也支持Amazon S3等其他的镜像。
Glance从某种角度上看起来有点像虚拟存储,也提供API,可以实现比较完整的镜像管理功能。所以理论上其他云平台也可以使用它。
Glance比较简单,又限于云内部,所以没啥可以多展开讨论的,不如看看新出来的块存储组件Cinder,目前我对Cinder基本的看法是总体的设计不错,细节和功能还有很多需要完善的地方,离一个成熟的产品还有点距离。
Cinder
OpenStack到F版本有比较大的改变,其中之一就是将之前在Nova中的部分持久性块存储功能(Nova-Volume)分离了出来,独立为新的组件Cinder。它通过整合后端多种存储,用API接口为外界提供块存储服务,主要核心是对卷的管理,允许对卷,卷的类型,卷的快照进行处理。
Cinder包含以下三个主要组成部分

API service:Cinder-api 是主要服务接口, 负责接受和处理外界的API请求,并将请求放入RabbitMQ队列,交由后端执行。 Cinder目前提供Volume API VScheduler service: 处理任务队列的任务,并根据预定策略选择合适的Volume Service节点来执行任务。目前版本的cinder仅仅提供了一个Simple Scheduler, 该调度器选择卷数量最少的一个活跃节点来创建卷。
Volume service: 该服务运行在存储节点上,管理存储空间,塔处理cinder数据库的维护状态的读写请求,通过消息队列和直接在块存储设备或软件上与其他进程交互。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。

Cinder通过添加不同厂商的指定drivers来为了支持不同类型和型号的存储。目前能支持的商业存储设备有EMC 和IBM的几款,也能通过LVM支持本地存储和NFS协议支持NAS存储,所以Netapp的NAS应该也没问题,好像华为也在努力中。我前段时间还在Cinder的blueprints看到IBM的GPFS分布式文件系统,在以后的版本应该会添加进来
到目前为止,Cinder主要和Openstack的Nova内部交互,为之提供虚机实例所需要的卷Attach上去,但是理论上也可以单独向外界提供块存储。
部署上,可以把三个服务部署在一台服务器,也可以独立部署到不同物理节点
现在Cinder还是不够成熟,有几个明显的问题还没很好解决,一是支持的商业存储还不够多,而且还不支持FC SAN,另外单点故障隐患没解决,内部的schedule调度算法也太简单。另外由于它把各种存储整合进来又加了一层,管理倒是有办法了,但是效率肯定是有影响,性能肯定有损耗,但这也是没办法的事了。
Openstack通过两年多发展,变得越来越庞大。目前光存储就出现了三种:对象存储、镜像存储和块存储。这也是为了满足更多不同的需求,体现出开源项目灵活快速的特性。总的说来,当选择一套存储系统的时候,如果考虑到将来会被多个应用所共同使用,应该视为长期的决策。Openstack作为一个开放的系统,最主要是解决软硬件供应商锁定的问题,可以随时选择新的硬件供应商,将新的硬件和已有的硬件组成混合的集群,统一管理,当然也可以替换软件技术服务的提供商,不用动应用。这是开源本身的优势!

最新文章