Centos kvm+ceph
- Centos kvm+ceph
- 一. centos6.5 安装kvm
- 1. disable selinux
- 2. 确认支持intel虚拟化
- 3. 安装需要的包
- 4.设置桥接网络
- 5.运行kvm instance(此步骤仅用于测试环境是否安装成功)
- 6.连接到kvm
- 二. centos安装ceph(firefly版本)
- 准备机器
- 管理机安装
- 安装其他节点
- 三. kvm使用ceph
- 创建osd pool(块设备的容器)
- 设置账号对该pool的读写权限
- 用qemu-img在pool中创建img
- 验证img创建成功
- 用kvm创建一个虚拟机
Centos kvm+ceph
centos 7无法用公用源安装ceph, 包依赖不满足
centos 6可以安装,但内核不支持rbd,需要更新内核
rpm --importhttp://elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvhhttp://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-lt-y )
一. centos6.5 安装kvm
1. disable selinux
vi /etc/selinux/config
reboot
2. 确认支持intel虚拟化
egrep '(vmx|svm)' --color=always /proc/cpuinfo
空代表不支持
3. 安装需要的包
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum install virt-manager libvirt qemu-kvm openssh-askpass kvm python-virtinst
service libvirtd start
chkconfig libvirtd on
emulator 一般是qemu-kvm,也可能是其他。
/usr/libexec/qemu-kvm -M ? 查看支持的host系统类型 (我碰到的情况,启动虚拟机时提示host类型rhel6.5不支持,virsh edit ...将host中的rhel6.5改为pc通过)
/usr/libexec/qemu-kvm
-drive format=? 查看支持的设备类型 (必须支持rbd,如果没有显示,需要安装支持的版本。源码安装git clone
git://git.qemu.org/qemu.git;./configure --enable-rbd。
可能未必产生qemu-kvm,也许是qemu-system-x86_64之类的,那就需要在配置文件里将emulator换成编译好的可执行文件)
4.设置桥接网络
yum install bridge-utils
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
NM_CONTROLLED="no"
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.0.100
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System br0"
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT=yes
TYPE="Ethernet"
UUID="73cb0b12-1f42-49b0-ad69-731e888276ff"
HWADDR=00:1E:90:F3:F0:02
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
BRIDGE=br0
/etc/init.d/network restart
5.运行kvm instance(此步骤仅用于测试环境是否安装成功)
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2
--disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc
--noautoconsole --os-type linux --os-variant debiansqueeze --accelerate
--network=bridge:br0 --hvm
6.连接到kvm
如果需要安装gui
yum -y groupinstall "Desktop" "Desktop Platform" "X Window System" "Fonts"
二. centos安装ceph(firefly版本)
准备机器
一台安装管理机:admin
一台monitor:node1
两台数据机osd: node2, node3
一台使用ceph rbd的客户端: ceph-client
所有机器上都创建ceph用户,给予sudo权限,所以后续命令以ceph用户执行。
所有机器关闭 selinux
所有机器关闭Defaults requiretty(sudo visudo)
所有机器检查iptables等防火墙设置,节点间通讯使用22,6789,6800等端口,防止被拒绝
管理机安装
添加repo
sudo vim /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
我将baseurl替换为baseurl=http://ceph.com/rpm-firefly/el6/noarch
执行sudo yum update && sudo yum install ceph-deploy
使得admin用ssh key登陆其他机器
ssh-keygen
ssh-copy-id ceph@node1
ssh-copy-id ceph@node2
ssh-copy-id ceph@node3
安装其他节点
admin机器上
mkdir my-cluster
cd my-cluster
初始化配置:
ceph-deploy new node1
此时会在当前目录下创建配置文件ceph.conf,编辑ceph.conf,
添加osd pool default size = 2, 这是因为我们只有2个osd
添加rbd default format = 2, 将默认的rbd image格式设置为2,支持image的clone功能
添加journal dio = false,
在所有节点上安装ceph
ceph-deploy install admin node1 node2 node3
初始化监控节点
ceph-deploy mon create-initial node1
初始化osd节点
ssh node2
sudo mkdir /var/local/osd0
exit
ssh node3
sudo mkdir /var/local/osd1
exit
ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1
ceph-deploy osd activate node2:/var/local/osd0 node3:/var/local/osd1
(此处两个命令应该在数秒内结束,若长时间不响应直至300秒超时,考虑是否有防火墙因素。)
将配置拷贝到各个节点
ceph-deploy admin admin-node node1 node2 node3
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
ceph health
ceph status
希望得到active_clean状态
三. kvm使用ceph
创建osd pool(块设备的容器)
ceph osd pool create libvirt-pool 128 128
设置账号对该pool的读写权限
假设我们使用的账号是libvirt(如果使用admin账号默认拥有所有权限,无需设置)
ceph auth
get-or-create client.libvirt mon 'allow r' osd 'allow class-read
object_prefix rbd_children, allow rwx pool=libvirt-pool'
用qemu-img在pool中创建img
qemu-img create -f rbd rbd:libvirt-pool/new-libvirt-image 10G
这一步我遇到了Unknown file format 'rbd', 这是因为低版本的qemu-img不支持rbd.
但是我的qemu-img版本号已经够了,猜测是我的包在编译时没有加rbd的选项。无奈强制安装了版本号更低的 http://ceph.com/packages/qemu-kvm/centos/x86_64/qemu-img-0.12.1.2-2.355.el6.2.cuttlefish.x86_64.rpm 才支持)
验证img创建成功
rbd -p libvirt-pool ls
用kvm创建一个虚拟机
1. 用virsh命令或virt-manager创建一个虚拟机
需要一个iso或img 在/var/lib/libvirt/images/下
我将它命名为test。 cd rom中选择一个iso,比如debian.iso.不选硬盘。
2. virsh edit test
将该vm的配置修改为使用rbd存储
找到
<devices>
在其后添加如下:
<disk type='network' device='disk'>
<source protocol='rbd' name='libvirt-pool/new-libvirt-image'>
<host name='{monitor-host}' port='6789'/>
</source>
<target dev='vda' bus='virtio'/>
</disk>
3. 创建访问ceph的账号
cat > secret.xml <<EOF
<secret ephemeral='no' private='no'>
<usage type='ceph'>
<name>client.libvirt secret</name>
</usage>
</secret>
EOF
sudo virsh secret-define --file secret.xml
<uuid of secret is output here>
保存用户libvirt的key
ceph auth get-key client.libvirt | sudo tee client.libvirt.key
保存产生的uuid
sudo virsh secret-set-value --secret {uuid of secret} --base64 $(cat
client.libvirt.key) && rm client.libvirt.key secret.xml
virsh edit test
add auth
...
</source>
<auth username='libvirt'>
<secret type='ceph' uuid='9ec59067-fdbc-a6c0-03ff-df165c0587b8'/>
</auth>
4. 开启虚拟机安装os
同时 virsh edit test
将配置的boot方式从cdrom改为hd
5.安装结束重启虚拟机,会boot from vda,也就是rbd
6. 下一步可以使用rbd snap, rdb clone, virsh, guestfs制作和使用虚拟机模板
Centos kvm+ceph的更多相关文章
- CentOS 安装 ceph 单机版(luminous版本)
一.环境准备 CentOS Linux release 7.4.1708 (Core)一台,4块磁盘(sda.sdb,.sdc.sdd) 192.168.27.130 nceph 二.配置环境 1.修 ...
- 记一次centos挂载ceph存储的坑
起因 生产有两台服务器,准备用来跑工作流,执行的资源的是放在ceph存储集群中,第一步挂载ceph 执行命令:mount -t ceph xxx:xxx -o name=admin,secret=AQ ...
- centos kvm
http://linux.dell.com/files/whitepapers/KVM_Virtualization_in_RHEL_6_made_easy.pdf http://linux.dell ...
- CentOS 安装 ceph 单机版
简介 Ceph是一个分布式存储软件. 它支持用3种方式存储数据,分别是:对象存储.块设备存储.分布式文件系统存储. Ceph这个软件,分为3层,最底层是Rados对象存储系统.中间是一个librado ...
- centos7.2 +cloudstack 4.11 +KVM +ceph 安装配置(网卡带聚合)
系统安装,注意:管理节点版本是有要求的,配置为centos 7.2 最小安装版本(非最小化安装). 系统分区要求 /boot/efi 200MB / 100G /var 100G swap 0 其它给 ...
- Centos kvm桥接
新建一个ifcfg-br0文件: DEVICE=br0TYPE=BridgeBOOTPROTO=staticBROADCAST=10.1.255.255IPADDR=10.1.29.3NETMASK= ...
- 使用kvm虚拟出Centos6.5系统相关步骤
使用kvm虚拟出Centos6.5系统相关步骤 kvm是啥东西,亲们自行百度哇,一两句话也说不清楚,直接进主题使用宿主机虚拟出一台centos6.5的系统,当然其他系统也可以的,考虑到企业常用服务器系 ...
- 虚拟化技术性能总结:Zones, KVM, Xen
[译]虚拟化技术性能总结:Zones, KVM, Xen 时间 2014-04-29 16:52:44 Babyfacer_陈晓炜 原文 http://blog.csdn.net/babyface ...
- Ceph集群搭建及Kubernetes上实现动态存储(StorageClass)
集群准备 ceph集群配置说明 节点名称 IP地址 配置 作用 ceph-moni-0 10.10.3.150 centos7.5 4C,16G,200Disk 管理节点,监视器 monitor ...
随机推荐
- 爬虫之JSON案例
糗事百科实例: 爬取糗事百科段子,假设页面的URL是 http://www.qiushibaike.com/8hr/page/1 要求: 使用requests获取页面信息,用XPath / re 做数 ...
- Docker容器可以使用容器平台管理自动重启实现自修复吗?
容器的自修复功能是经常被吹嘘的.因为容器是衣服,人躺下了,衣服也躺下了,容器平台能够马上发现人躺下了,于是可以迅速将人重新唤醒工作. 而虚拟机是房子,人躺下了,房子还站着.因而虚拟机管理平台不知道里面 ...
- ADO.NET 使用DELETE语句批量删除操作,提示超时,删除失败,几种优化解决思路
起因是如此简单的一句sql 提示:Timeout 时间已到.在操作完成之前超时时间已过或服务器未响应. 提供几种解决思路: 1.检查WHERE条件中字段是否已建索引 2.检查是否被其他表引用,引用表外 ...
- 关于Google play无法下载应用
查看网络连接是否正常 查看账号信息 以上两种都没有问题,那可能是缓存的问题,去应用里面清楚缓存以后,重启手机. 如果还是不行,就在应用程序中 清除全部数据,重启手机,这样就可以了. ps:不管你行不行 ...
- Linux系统非root用户安装perl模块
非root权限安装perl 在使用Linux或是unix时,perl是一个非常有用的脚本的语言. 关于perl的模块安装,网上也有很多介绍,一方面可以通过不同套件自带的软件安装工具安装,一方面可以通过 ...
- jQuery实际案例②——三层轮播图
1.如图,这种轮播图需要实现的是,当鼠标移到2上时,第二张图片从右侧过来 2.需要注意的:①很明显这是通过改变z-index与left值来实现的: ②整体布局需注意,图与数值(1,2,3,4,5)两 ...
- thinkphp3.2笔记(1)目录,控制器及url模式,地址解析
一.目录 Application : tp默认的应用代码存储的目录 Public : Tp 默认的存储静态资源的目录,img,css,js ThinkPHP : Tp 框架的源代码 ...
- spring mvc:练习 @RequestParam(参数绑定到控制器)和@PathVariable(参数绑定到url模板变量)
spring mvc:练习 @RequestParam和@PathVariable @RequestParam: 注解将请求参数绑定到你的控制器方法参数 @PathVariable: 注释将一个方法参 ...
- App压力测试MonkeyRunner整理
压力测试结果:CRASH:崩溃,应用程序在使用过程中,非正常退出ANR:Application Not Responding 命令很多,不用死记,用到复制.粘贴就行,达到目的最重要. 简单通俗易懂点讲 ...
- 二十五 Python分布式爬虫打造搜索引擎Scrapy精讲—Requests请求和Response响应介绍
Requests请求 Requests请求就是我们在爬虫文件写的Requests()方法,也就是提交一个请求地址,Requests请求是我们自定义的 Requests()方法提交一个请求 参数: ur ...