OpenNebula学习第四节之磁盘镜像的制作
2017-08-04 11:41
323 查看
一、准备工作
需要准备一个Ubuntu16.04的ISO文件上传至服务器,如下图所示二、操作步骤
2.1:创建操作目录
创建一个/var/tmp/cloud_image目录,把Ubuntu16.04 OS的iso镜像上传到该目录,接下来的操作也会在这个目录下面执行2.2:创建一个OS磁盘镜像
利用命令:qemu-img create -f qcow2 ubuntu1604.img 10G创建一个空的磁盘镜像。如下图所示
需要注意的是:
-f 指定镜像的格式为qcow2 是一种可压缩的格式比较省空间
2.3:创建磁盘镜像的注册配置文件
该文件的作用是为了更方便的把磁盘镜像注册到OpenNebula的one服务中,需要创建两种类型的磁盘镜像注册文件,OS和CDROM类型,我们首先创建一个OS类型的镜像注册配置文件,touch一个ubuntu1604-os-img.one,vi内容如下
NAME = "Ubuntu1604-OS" PATH = "/var/tmp/cloud_image/ubuntu1604.img" TYPE = "OS" DESCRIPTION = "Ubuntu Server for company"
其次,创建一个CDROM类型的镜像注册配置文件,touch一个ubuntu1604-cdrom-img.one,vi内容如下
NAME = "Ubuntu1604-CDROM" PATH = "/var/tmp/cloud_image/ubuntu-16.04.2-server-amd64.iso" TYPE = "CDROM" DESCRIPTION = "Ubuntu Server for company"
截止到这里,所有的准备工作基本OK,我们来看一下工作目录的结果
2.4:注册磁盘镜像到OpenNebula
首先说一下注册方式有两种:通过OpenNebula的SunStone服务界面进行注册
通过命令行进行注册
1)通过OpenNebula进行磁盘镜像的注册
进入OpenNebula的管理界面点击存储-镜像-添加镜像如下图所示,可以从OpenNebula Server的方式写入镜像的URL或者上传本地镜像进行注册
2)通过命令行进行磁盘镜像的注册
执行命令 : oneimage create ubuntu1604-cdrom-img.one -d 1
语法 : oneimage create 镜像注册配置文件 -d 仓库ID
执行结果如下图所示:通过oneimage list命令可以查看我们刚刚注册的镜像,状态为rdy,创建成功
备注:可以执行 onedatastore list 查看仓库的ID,如下图所示
3)通过OpenNebula服务查看注册的镜像
OS类型的磁盘镜像加入以下属性,因为我们创建的时候格式是qcow2,否则安装系统的时候读取不到10G的磁盘空间
三、重点分析
在执行oneimage create命令的时候遇到过Not allowed to copy image 的错误,错误信息如下Thu Aug 3 10:22:12 2017 : Error copying image in the datastore: Not allowed to copy image file /var/lib/one/kingimage/ubuntu01.img
问题所在:
原因是因为OpenNebula的每一个仓库都有自己的安全目录的,不能随随便便的把image文件放在一个目录中,最简单的就是把镜像文件放在仓库的安全目录中,这样就可以允许复制了,但是如果你想有一个自定义的安全目录,你也可以尝试更改仓库的安全目录,操作如下:
1)查看仓库列表:onedatastore list
2)查看ID为1的仓库配置信息 onedatastore show 1
root@KingServer3:/var/tmp/cloud_image# onedatastore show 1 DATASTORE 1 INFORMATION ID : 1 NAME : default USER : oneadmin GROUP : oneadmin CLUSTERS : 0 TYPE : IMAGE DS_MAD : fs TM_MAD : ssh BASE PATH : /var/lib/one//datastores/1 DISK_TYPE : FILE STATE : READY DATASTORE CAPACITY TOTAL: : 30.9G FREE: : 25.2G USED: : 4.1G LIMIT: : - PERMISSIONS OWNER : um- GROUP : u-- OTHER : --- DATASTORE TEMPLATE CLONE_TARGET="SYSTEM" DISK_TYPE="FILE" DS_MAD="fs" LN_TARGET="SYSTEM" RESTRICTED_DIRS="/" SAFE_DIRS="/var/tmp" TM_MAD="ssh" TYPE="IMAGE_DS" IMAGES 0 1 root@KingServer3:/var/tmp/cloud_image#
通过上面的操作,我们可以看到SAFE_DIRS="/var/tmp"这一行,所以我的工作空间是建在这个目录下面的,默认就是安全目录,所以不会出现那个问题
3)更改指定仓库的安全目录onedatastore update 1
这个操作就如同vi一个文件一样,如下图,我们修改里面的SAFE_DIRS的值为我们自定义的目录即可
相关文章推荐
- 磁盘镜像文件的制作
- 【MacOS开机状态下磁盘镜像的制作】
- WinHex制作磁盘镜像
- Docker容器学习梳理--手动制作系统镜像
- FAT格式磁盘镜像制作方法
- Docker下的Kafka学习之一:制作集群用的镜像文件
- Docker学习系列从零开始之制作docker原始镜像【二】
- Docker入门学习四之自己制作Docker镜像
- 【docker】学习笔记一:制作自己的centos6.9镜像
- 实战DeviceIoControl 之三:制作磁盘镜像文件
- Docker学习笔记(一)------制作镜像
- Xen虚拟机磁盘镜像模板制作(二)—Windows Server 2008(2012)
- 实战DeviceIoControl 之三:制作磁盘镜像文件
- 实战 DeviceIoControl 系列 之三:制作磁盘镜像文件
- Docker学习系列从零开始之基于SSH镜像制作tomcat和jdk的镜像【五】
- qemu增加镜像磁盘 分类: ubuntu学习 2013-08-22 19:42 363人阅读 评论(0) 收藏
- 实战DeviceIoControl 之三:制作磁盘镜像文件 分类: windows驱动程序WDM 2013-09-25 14:47 397人阅读 评论(0) 收藏
- Docker学习笔记之二:制作镜像并PUSH
- 使用Linux向磁盘写入镜像,制作启动盘等
- 实战DeviceIoControl 之三:制作磁盘镜像文件