码迷,mamicode.com
首页 > 其他好文 > 详细

初探oVirt-使用小结FAQ

时间:2015-09-29 01:28:32      阅读:2049      评论:0      收藏:0      [点我收藏+]

标签:ovirt   vdsm   cloud-init   glusterfs   

初探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副本作为数据域)
【数据盘分区】
如果分区所在设备已经挂载,要先卸载并删掉现有系统。
[root@node86 ~]# yum install lvm2 xfsprogs -y   
[root@node86 ~]# pvcreate /dev/sdb
[root@node86 ~]# vgcreate vg0 /dev/sdb 
[root@node86 ~]# lvcreate -l 100%FREE -n lv01 vg0
[root@node86 ~]# mkfs.xfs -f -i size=512 /dev/vg0/lv01 
[root@node86 ~]# blkid /dev/vg0/lv01
/dev/vg0/lv01: UUID="58a47793-3202-45ab-8297-1c867b6fdd68" TYPE="xfs" 

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

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


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


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

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

【提供data域】
创建卷gv0作为主数据域:
[root@node86 ~]# 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 

【启动】
[root@node86 ~]# gluster volume start gv1

【查看现状】
[root@node86 ~]# 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测试
[root@node93 ~]# mount.glusterfs 192.168.25.86:/gv1 /mnt
[root@node93 ~]# 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域的映像即可。


初探oVirt-使用小结FAQ

标签:ovirt   vdsm   cloud-init   glusterfs   

原文地址:http://nosmoking.blog.51cto.com/3263888/1698911

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!