当前位置: 首页 > news >正文

OpenNebula学习第四节之磁盘镜像的制作

OpenNebula学习第四节之磁盘镜像的制作

一、准备工作

需要准备一个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

首先说一下注册方式有两种:

  1. 通过OpenNebula的SunStone服务界面进行注册
  2. 通过命令行进行注册

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的值为我们自定义的目录即可

 
 
 
 
 
 
posted on 2017-08-04 11:41 kingstudy 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/wxjnew/p/7284195.html

相关文章:

  • 转:Spring Boot中使用AOP统一处理Web请求日志
  • 《零基础入门学习Python》学习过程笔记【38类的继承】
  • 制作毛玻璃效果
  • 设计模式——简单工厂模式
  • 吐血分享:QQ群霸屏技术教程(接单篇)
  • js全局变量,局部变量
  • 2017百度之星资格赛 1003 度度熊与邪恶大魔王 背包DP
  • 8086汇编之 CALL 和 RET指令
  • c# 多线程编程中AutoResetEvent和ManualResetEvent
  • 【Python】 配置文件相对路径软件自动执行的工作目录
  • [SDUT](3361) 数据结构实验之图论四:迷宫探索 ---DFS(图)
  • proxy汇总-1
  • 使用for循环输出九九乘法表
  • ffmpeg学习(二) 通过rtsp获取H264裸流并保存到mp4文件
  • 安装node.js和npm
  • [数据结构]链表的实现在PHP中
  • 【5+】跨webview多页面 触发事件(二)
  • 2019年如何成为全栈工程师?
  • Angular Elements 及其运作原理
  • CSS中外联样式表代表的含义
  • Java 多线程编程之:notify 和 wait 用法
  • jquery ajax学习笔记
  • python学习笔记 - ThreadLocal
  • vue-router的history模式发布配置
  • Webpack 4x 之路 ( 四 )
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 开源SQL-on-Hadoop系统一览
  • 力扣(LeetCode)965
  • 前端_面试
  • 首页查询功能的一次实现过程
  • 正则表达式-基础知识Review
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (06)金属布线——为半导体注入生命的连接
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (三)模仿学习-Action数据的模仿
  • (原創) 物件導向與老子思想 (OO)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)shell调试方法
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .Net FrameWork总结
  • .net 获取url的方法
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [\u4e00-\u9fa5] //匹配中文字符
  • [ANT] 项目中应用ANT