初探oVirt-使用小结FAQ

2015/9/28 time 18:52

【Q1】:执行virsh命令时,会提示需要用户验证(Please enter your authentication name),看错误提示似乎和配置vdsm服务后,使用了SASL有关系,怎么解决?
A:使用工具“saslpasswd2 - set a user’s sasl password”来创建用户。
问题发生时是这样的:
# virsh list
Please enter your authentication name: 
Please enter your password: 
error: Failed to reconnect to the hypervisor
error: no valid connection
error: authentication failed: Failed to step SASL negotiation: -1 (SASL(-1): generic failure: All-whitespace username.)

我们来创建一个用户:
# saslpasswd2 -a libvirt mYusernAme    
Password: mYpasswOrd
Again (for verification): mYpasswOrd

其中,-a 参数跟着 appname,这里我们需要指定的是libvirt服务
原因是:vdsm在加入ovirt时会使用sasl再次加密libvirt

再次测试:
# virsh list
Please enter your authentication name: mYusernAme
Please enter your password: 
 Id    Name                           State
----------------------------------------------------
 1     tvm-test-template              running
 2     tvm-test-clone                 running
 3     tvm-test-clone-from-snapshot   running
 4     testpool001                    running
 5     testpool007                    running
 6     testpool006                    running
 
符合预期。 

【Q2】:执行ovirt界面上的针对vm的重启操作,ovirt的web界面有提示状态的变更,,但vm的console看并未重启,这是怎么回事?
A:vm里面没有安装agent,在linux下面是:ovirt-guest-agent
安装 ovirt-guest-agent
在vm上先安装ovirt-release35.rpm这个yum源。
# yum -y install http://plain.resources.ovirt.org/pub/yum-repo/ovirt-release35.rpm
# yum -y install ovirt-guest-agent
启动服务
# service ovirt-guest-agent start
# chkconfig ovirt-guest-agent on

【Q3】:克隆VM时,磁盘等待很久还没准备就绪
A:状态:被克隆对象,附加了一个大容量磁盘(2T)。
检查所在host上运行的进程,找到qemu-img,检查是否卡死,手动结束。
 
【Q4】:cloud-init是怎么使用的?
A:cloud-init用来设置vm启动后的主机名,时区,验证,网络和自定义脚本。
1)在vm上安装cloud-init
# yum -y install cloud-init
检查开机启动
# chkconfig --list |grep cloud

2)测试
关闭vm,选择菜单“只运行一次”-“初始运行”-“使用 cloud-init”,设置hostname等信息。
单击“确定”,vm开始启动,引导过程中将使用cloud-init这个服务来自动设置vm的基础信息。

看日志(/var/log/cloud-init-output.log )显示:
Cloud-init v. 0.7.5 running ‘init-local‘

结合之前在网络中找的文章中提及:
cloud-init on RHEV searches for a floppy drive
containing a user-data.txt file
参考:
http://people.redhat.com/mskinner/rhug/q3.2014/cloud-init.pdf

我的理解是:
1)通常我们创建vm时,会使用“只运行一次”,来启用引导选项,类似的,个人猜测也cloud-init功能也是在这个时候以类似软驱的形式注入到vm中(vm中的ovirt-guest-agent在启动时临时挂载的?),然后vm在启动过程中读取了user-data这类数据。
2)观察目录 /var/lib/cloud/instance
3)查看文件 datasource
# cat datasource 
DataSourceConfigDrive: DataSourceConfigDrive [local,ver=2][source=/dev/sr1]
# ll /dev/cd*
lrwxrwxrwx. 1 root root 3 Sep 16  2015 /dev/cdrom -> sr0
lrwxrwxrwx. 1 root root 3 Sep 16  2015 /dev/cdrom1 -> sr1
由此可以判断,出现了一个新设备:cdrom1,我们挂载看一下里面的内容:
# mount /dev/sr1 /mnt
mount: block device /dev/sr1 is write-protected, mounting read-only
# tree /mnt/
/mnt/
└── openstack
    ├── content
    │   └── 0000
    └── latest
        ├── meta_data.json
        └── user_data

3 directories, 3 files

# cat /mnt/openstack/latest/user_data 
#cloud-config
ssh_pwauth: true
timezone: Asia/Shanghai
disable_root: 0
output:
  all: ‘>> /var/log/cloud-init-output.log‘
user: root
password: yourpasswd
chpasswd:
  expire: false
runcmd:
- ‘sed -i ‘‘/^datasource_list: /d‘‘ /etc/cloud/cloud.cfg; echo ‘‘datasource_list:
  ["NoCloud", "ConfigDrive"]‘‘ >> /etc/cloud/cloud.cfg‘

# cat /mnt/openstack/latest/meta_data.json 
{
  "launch_index" : "0",
  "availability_zone" : "nova",
  "network-interfaces" : "auto eth0\niface eth0 inet static\n  address 10.0.200.101\n  netmask 255.255.255.0\n  gateway 10.0.200.254\n  dns-nameservers 10.0.200.253\nauto eth1\niface eth1 inet static\n  address 10.0.201.101\n  netmask 255.255.255.0\n  dns-nameservers 10.0.200.253\n",
  "name" : "cloud-init",
  "network_config" : {
    "content_path" : "/content/0000",
    "path" : "/etc/network/interfaces"
  },
  "hostname" : "cloud-init",
  "uuid" : "72be0e3f-10a7-433e-b6b3-a9daded7948f",
  "meta" : {
    "essential" : "false",
    "role" : "server",
    "dsmode" : "local"
  }  

上述2个文件中,实例名,主机名,网络等信息,都是我们在ovirt的web界面中配置的内容。

结合 cloud-init 的 doc来看【No cloud】这一段:
http://cloudinit.readthedocs.org/en/latest/topics/datasources.html#no-cloud
简单翻译下:
NoCloud 和 NoCloudNet 这类数据源,允许用户不需要运行网络服务(甚至不用激活网络)即可提供文件: user-data 和 meta-data 给 实例(instance)
你可以通过vfat or iso9660文件系统提供文件: meta-data 和 user-data 给一个本地 vm 在启动是使用。

【Q5】:使用glusterfs服务时,报错 “glusterfs: failed to get the ‘volume file‘ from server”
A:先检查gluster版本,保持一致。host启用gluster服务后安装的版本,根据ovirt的源来分析,可能是官网最新的版本。
默认ovirt在安装时,使用的是:ovirt-3.5-dependencies.repo,,当前会下载glusterfs/3.7
客户端手动安装官网的新版本:
# wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/CentOS/epel-6/x86_64/glusterfs-3.7.4-2.el6.x86_64.rpm
# wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/CentOS/epel-6/x86_64/glusterfs-libs-3.7.4-2.el6.x86_64.rpm
# wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/CentOS/epel-6/x86_64/glusterfs-client-xlators-3.7.4-2.el6.x86_64.rpm
# wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/CentOS/epel-6/x86_64/glusterfs-fuse-3.7.4-2.el6.x86_64.rpm
# rpm -ivh *.rpm

【Q6】:不使用ovirt管理glusterfs,自己配置glusterfs,怎么做?数据域如何挂载,做了哪些优化工作?
A:
首先,ovirt的优化做了如下工作:
---
优化后,配置将做如下调整:
Options Reconfigured:
diagnostics.count-fop-hits: on
diagnostics.latency-measurement: on
storage.owner-gid: 36
storage.owner-uid: 36
cluster.server-quorum-type: server
cluster.quorum-type: auto
network.remote-dio: enable
cluster.eager-lock: enable
performance.stat-prefetch: off
performance.io-cache: off
performance.read-ahead: off
performance.quick-read: off
auth.allow: *
user.cifs: enable
nfs.disable: off
performance.readdir-ahead: on
---

其次,集群内每个主机需要能正常解析gluster的节点名称->IP的映射(不仅是“新建域”时指定的那台主机需要配置hosts或者dns服务器的A记录)
再次,防火墙

示例为在ovirt中启用 gluster 服务后的防火墙配置:

# rpc.statd
-A INPUT -p tcp --dport 111 -j ACCEPT
-A INPUT -p udp --dport 111 -j ACCEPT

# glusterd
-A INPUT -p tcp -m tcp --dport 24007 -j ACCEPT

# gluster swift
-A INPUT -p tcp -m tcp --dport 8080  -j ACCEPT

# portmapper
-A INPUT -p tcp -m tcp --dport 38465 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 38466 -j ACCEPT

# nfs
-A INPUT -p tcp -m tcp --dport 38467 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2049  -j ACCEPT
-A INPUT -p tcp -m tcp --dport 38469 -j ACCEPT

# status
-A INPUT -p tcp -m tcp --dport 39543 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 55863 -j ACCEPT

# nlockmgr
-A INPUT -p tcp -m tcp --dport 38468 -j ACCEPT
-A INPUT -p udp -m udp --dport 963   -j ACCEPT
-A INPUT -p tcp -m tcp --dport 965   -j ACCEPT

# Ports for gluster volume bricks (default 100 ports)
-A INPUT -p tcp -m tcp --dport 24009:24108 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 49152:49251 -j ACCEPT

【示例】配置存储域-glusterfs集群:node72,node73,node86(示例提供3副本作为数据域)
【数据盘分区】
如果分区所在设备已经挂载,要先卸载并删掉现有系统。
[[email protected] ~]# yum install lvm2 xfsprogs -y   
[[email protected] ~]# pvcreate /dev/sdb
[[email protected] ~]# vgcreate vg0 /dev/sdb 
[[email protected] ~]# lvcreate -l 100%FREE -n lv01 vg0
[[email protected] ~]# mkfs.xfs -f -i size=512 /dev/vg0/lv01 
[[email protected] ~]# blkid /dev/vg0/lv01
/dev/vg0/lv01: UUID="58a47793-3202-45ab-8297-1c867b6fdd68" TYPE="xfs" 

[[email protected] ~]# mkdir /data
[[email protected] ~]# cat <<‘_EOF‘ >>/etc/fstab
UUID=58a47793-3202-45ab-8297-1c867b6fdd68 /data                   xfs     defaults        0 0
_EOF

[[email protected] ~]# mount -a
[[email protected] ~]# df -h |grep data
/dev/mapper/vg0-lv01  16T   33M  16T   1% /data

【准备工作】
安装服务
[[email protected] ~]# yum install glusterfs-server
[[email protected] ~]# service glusterd start
[[email protected] ~]# chkconfig glusterd on

调整防火墙:
-A INPUT -s 192.168.25.0/24 -j ACCEPT

配置集群:
[[email protected] ~]# gluster peer probe 192.168.25.72
[[email protected] ~]# gluster peer probe 192.168.25.73
每台集群节点上建立目录
[[email protected] ~]# mkdir /data/gv1/brick1 -p

【提供data域】
创建卷gv0作为主数据域:
[[email protected] ~]# gluster volume create gv1 replica 3 transport tcp 192.168.25.86:/data/gv1/brick1 192.168.25.72:/data/gv1/brick1 192.168.25.73:/data/gv1/brick1 

【启动】
[[email protected] ~]# gluster volume start gv1

【查看现状】
[[email protected] ~]# gluster volume info
 
Volume Name: gv1
Type: Replicate
Volume ID: 32b1866c-1743-4dd9-9429-6ecfdfa168a2
Status: Started
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: 192.168.25.86:/data/gv1/brick1
Brick2: 192.168.25.72:/data/gv1/brick1
Brick3: 192.168.25.73:/data/gv1/brick1

---配置卷,以gv1为例:
gluster volume set gv1 diagnostics.count-fop-hits on
gluster volume set gv1 diagnostics.latency-measurement on
gluster volume set gv1 storage.owner-gid 36
gluster volume set gv1 storage.owner-uid 36 
gluster volume set gv1 cluster.server-quorum-type server
gluster volume set gv1 cluster.quorum-type auto
gluster volume set gv1 network.remote-dio enable
gluster volume set gv1 cluster.eager-lock enable
gluster volume set gv1 performance.stat-prefetch off
gluster volume set gv1 performance.io-cache off
gluster volume set gv1 performance.read-ahead off
gluster volume set gv1 performance.quick-read off
gluster volume set gv1 auth.allow \*
gluster volume set gv1 user.cifs enable
gluster volume set gv1 nfs.disable off
---配置卷

在1台节点上挂载卷gv1测试
[[email protected] ~]# mount.glusterfs 192.168.25.86:/gv1 /mnt
[[email protected] ~]# df -h /mnt
Filesystem          Size  Used Avail Use% Mounted on
192.168.25.72:/gv1   16T   39M   16T   1% /mnt

【Q7】:提示“执行动作 添加存储连接 时出错: 试图挂载目标时出现问题”
A:注意:填写“路径”时,注意末尾不要出现空格,否则会失败,通过查看挂载节点上/var/log/vdsm.log,可以分析原因,例如,日志显示:
Storage.StorageServer.MountConnection::(connect) Mount failed: (32, ‘;mount.nfs: access denied by server while mounting 192.168.20.
93:/data/ovirt/iso \n‘)
【错误】
路径:192.168.20.93:/data/ovirt/iso [iso后边跟着一个空格]
【正确】
路径:192.168.20.93:/data/ovirt/iso[iso后边没空格]

假设已经挂载完毕ISO,我们需要增加OS进来,这里有个小技巧:
查看iso所在的NFS服务器(192.168.20.93)的路径
# pwd
/data/ovirt/iso/62a1b5e0-730f-47db-8057-3ed0fda7b83a/images/11111111-1111-1111-1111-111111111111
我们可以直接cd到这个目录下,将OS文件上传到这里,修改权限
# chown -R 36:36 . 
回到web端,查看iso域的映像即可。
时间: 2024-11-07 22:14:42

初探oVirt-使用小结FAQ的相关文章

初探glusterfs-使用小结FAQ

2015/11/4 time 17:58 1.快速建立一个卷来提供服务的流程示例 [数据盘分区] 如果分区所在设备已经挂载,要先卸载并删掉现有系统. yum install lvm2 xfsprogs -y    pvcreate /dev/sdb vgcreate vg0 /dev/sdb  lvcreate -l 100%FREE -n lv01 vg0 mkfs.xfs -f -i size=512 /dev/vg0/lv01  mkdir /data cat <<_EOF >&g

初探ELK-filebeat使用小结

2016/9/18 一.安装 1.下载 有2种方式下载,推荐缓存rpm包到本地yum源 1)直接使用rpm [[email protected] ~]# curl -L -O https://download.elastic.co/beats/filebeat/filebeat-1.3.1-x86_64.rpm 2)使用yum源 [[email protected] ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearc

初探ELK-logstash使用小结

2016/9/12 [写在前言] 说起处理日志的手段,大家或多或少都听说过ELK(elasticsearch+logstash+kibana),怎么入门呢?咱们从一个小小的目标开始. 目标:收集nginx日志,集中展示. 不少人对 ELK 的第一印象,容易觉得它这个工具组合似乎挺难上手的,错!只需动手试试就知道啦! 目标分解: 1)熟悉 logstash 的安装和基本操作 2)熟悉 elasticsearch 的安装和基本操作,然后结合 logstash 使用 3)熟悉 kibana 的安装和基

初探ovirt之engine管理端安装

ovirt是RHEV的社区版,是一个免费开源的虚拟化软件.它包括管理端和node节点,类似于vsphere和esxi大关系一样.Ovirt中集成了glusterfs分布式存储的管理功能,在图形化界面下友好的管理了glusterfs.下面大概看看它的组成部分: 一个 Ovirt环境包括: 1.主机(host):基于 KVM 的.用来运行虚拟机的主机.在本文档中有时也被称为虚拟主机. 代理和工具程序:运行在主机上的代理和工具程序(包括 VDSM.QEMU 和 libvirt).这些工具程序提供了对虚

CAPI 初探及使用小结(2)

作者注: 限于能力和时间,文中定有不少错误,欢迎指出,邮箱[email protected], 期待讨论.由于绝大部分是原创,即使拷贝也指明了出处(如有遗漏请指出),所以转载请表明出处http://www.cnblogs.com/e-shannon/ http://www.cnblogs.com/e-shannon/p/7495618.html 2 CAPI overview 2.1         背景 2.1.1          行业背景 2013年8月由IBM.Google .NVIDI

初探ELK-elasticsearch使用小结

2016/9/12 一.安装 1.jdk 和 环境变量 支持jdk-1.7以上,推荐jdk-1.8 在环境变量配置:JAVA_HOME 2.安装 有2种方式下载,推荐缓存rpm包到本地yum源 1)直接使用rpm wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.4.0/elasticsearch-2.4.0.rpm 2)使用yum源

初探ELK-kibana使用小结

2016/9/12 1.安装 有2种方式下载,推荐缓存rpm包到本地yum源 1)直接使用rpm wget https://download.elastic.co/kibana/kibana/kibana-4.6.1-x86_64.rpm 2)使用yum源 [[email protected] ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch [[email protected] ~]# vim /etc/yum

CAPI 初探及使用小结(4)

限于能力和时间,文中定有不少错误,欢迎指出,邮箱[email protected], 期待讨论.由于绝大部分是原创,即使拷贝也指明了出处(如有遗漏请指出),所以转载请表明出处http://www.cnblogs.com/e-shannon/ http://www.cnblogs.com/e-shannon/p/7495618.html 4开放的coherent加速接口 正如第一节所说的,为了满足加速需求,业界为CPU高性能一致性接口(high performance coherence inte

CAPI 初探及使用小结(3)

作者注: 限于能力和时间,文中定有不少错误,欢迎指出,邮箱[email protected], 期待讨论.由于绝大部分是原创,即使拷贝也指明了出处(如有遗漏请指出),所以转载请表明出处http://www.cnblogs.com/e-shannon/ http://www.cnblogs.com/e-shannon/p/7495618.html 3CAPI详细结构和流程 CAPI的设计思路即是将加速设备作为CPU的完全对等体(full peer to CPU),可直接与application通信