OpenStack(企业私有云)万里长征第六步——OpenStack网络及虚拟机存储位置

一、前言

昨天又装了一遍OpenStack。码农这项工作就如同人生,永远有你想不到的意外在等着你,时而是惊喜时而是悲伤。在装的过程中倒是很顺利,只是在安装完成之后碰到了两个之前没有碰到的问题,这里记录下来以供需要之人查阅。

二、Q1 网络问题

由于管理网络需要访问互联网且虚拟机同样需要访问互联网,所以管理网络和external网络考虑能不能放到同一个网段去。我本身对网络这块不是很熟悉,之前我考虑同一个服务器不同网卡如果配置同一个网段势必会造成只有一个网卡能起作用,因为数据只可能从一个网口出去。网上也查阅了相关资料,都说理论上可以,但是这种场合最好只出现在负载均衡等情况下,想来是有道理的。

但是对于我这个爱折腾的人来说,什么东西都要亲自试过了我才能确定,而且我考虑虚拟机访问外部网络网卡是指定好的,这样应当不会造成冲突,于是在安装好之后就开始实验。

网络配置情况是这样的:管理网络采用外部网络192.168.10.0/24,虚拟机网络无需多言,外部网络也采用192.168.10.0/24网段,即从交换机直接接了两根线到主节点上。

安装好OpenStack后修改/etc/neutron/plugins/ml2/ml2_conf.ini文件,将外部网络配置到主节点的第三块网卡(具体参考OpenStack(企业私有云)万里长征第四步——DevStack整体安装规划及使用)。而后在OpenStack中采用上述文章中的方式创建外部网络,结果居然成功了。

说明将管理网络和外部网络配置成同一个网段的方案是可行的,但是此处需要注意的是在创建external网络的时候需要设置一下地址池,选择一个网段,防止IP冲突。

三、Q2 虚拟机存储位置问题

新的服务器配置比较高,有两块固态硬盘,剩下的为机械硬盘,这样就考虑两块固态硬盘做RAID 0用于安装操作系统,其余硬盘做RAID 5用于存放数据(但是由于固态硬盘还没有完全到货,有几台全部为机械硬盘,即只做了一个RAID)。在安装前我心里就一惊,之前我没有碰到过这种方案,因为OpenStack势必是把虚拟机、镜像等数据存放在操作系统目录中的,这样几百G的固态硬盘显然是不可能够用的。

安装完之后,果然如我所设想,在创建虚拟机的时候由于OpenStack的策略,使得虚拟机全部部署到了不包含固态硬盘的服务器上,这是因为NOVA的filter Scheduler,在创建虚拟机的时候会根据各种条件对计算节点进行打分,而后根据权重算出最有节点去部署,当然包含固态硬盘的服务器由于硬盘太小,所以分数太低而无法部署虚拟机。

码农的职责就是无论碰到的是惊喜或者忧伤都要迎难而上,既然这样那就尝试着能不能把包含固态硬盘服务器的虚拟机存储位置改到机械硬盘上。

于是在简单的搜索之后开始尝试。首先查到了虚拟即存放位置存储在/etc/nova/nova.conf文件的下面两行信息中。

instances_path = /opt/stack/data/nova/instances
state_path = /opt/stack/data/nova

这就容易了,我只需要将机械硬盘创建分区、格式化,而后挂载到一个新目录,并修改上述虚拟机存储位置就好了嘛。

3.1 创建分区、格式化及自动挂载

显示所有硬盘及所属分区情况

sudo fdisk -lu

通过此命令可以看到服务器中包含哪些硬盘,以及是否创建分区等。

对硬盘进行分区

sudo fdisk /dev/sdb

查看第一步中需要分区的硬盘,执行上述命令,将/dev/sdb替换为你要分区的硬盘。

硬盘格式化

sudo mkfs -t ext4 /dev/sdb

同样将/dev/sdb替换为你要分区的硬盘,上述命令将分好区的硬盘格式化为ext4格式。

挂载硬盘分区

sudo mount -t ext4 /dev/sdb /devdata

同样将/dev/sdb替换为你要分区的硬盘,并将/devdata替换为想要挂载的地方并创建该目录,此命令将 /dev/sdb 分区挂载到目录 /devdata。

在终端窗口中输入如下命令查看挂载情况:

sudo df -lh

配置硬盘在系统启动时自动挂载

1、首先查看需要自动挂载硬盘的UUID

ls -all /dev/disk/by-uuid 

2、在文件 /etc/fstab 中加入如下配置:

# /devdata was on /dev/sdb
UUID=37eaa526-5d96-4237-8468-603df5216ce9     /devdata     ext4     defaults     0     3

将上述UUID后的值替换为1中查看到的硬盘对应的UUID号,将/devdata替换为你的挂载目录。

3.2 迁移虚拟机存储位置

我将机械硬盘直接挂载到了/data目录,满心欢喜的以为将存储位置修改成/data之后即可搞定,然而一切高兴的太早,无论我怎么操作(又是将原始目录中的内容copy到/data下,又是修改/data的所属用户)在OpenStack中始终无法查看虚拟机,甚至整个OpenStack几乎崩溃。

这让我很是着急,难道白辛苦一天又要从头开始吗,于是机智如我怎能不立即想到将机械硬盘直接挂载到/opt/stack/data/nova下而不去修改nova.conf配置,这样应该就能直接解决问题了吧,说干就干。在简单折腾之后直接成功了。So Easy。

当然此步需要注意两点:

  1. 挂载完成之后需要在/opt/stack/data/nova目录中创建instances目录,否则会报找不到目录的错误。
  2. 修改此目录的权限为stack,此目录权限可能会改成root。

所以最好是先将/opt/stack/data/nova中的内容拷至其他目录进行备份,待挂载后再粘贴回来。当然最好的方式是先进行挂载操作,再安装OpenStack。

四、总结

以上便是此次部署中碰到并解决的两个实际问题,此次安装整体较顺利,相对于去年安装Cloudera的过程,不知道要好了多少倍。大概经历了一年之后,各方面都变化不少吧。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

2018-10-09 lombok 生产环境报错SEVERE: Unable to process Jar entry [module-info.class] from Jar [jar:fil...

老师您好,课程里面用的lombok,感觉很方便,我就在我写的一个测试项目里面也用的这个。在idea里面用tomcat是可以正常运行的。但是打好包以后,放到服务器...

5.8K20
来自专栏北京马哥教育

手把手教你用永恒之蓝(Eternalblue)勒索病毒漏洞的高阶用法

? 作者:7sDream 来源: https://www.zybuluo.com/7sDream/note/729295 安装 MSF Linux & Ma...

52580
来自专栏CSDN技术头条

Kubernetes推1.2版本,可管理1000节点,运行3万Pods

赶在Google云端产品用户大会之前,Kubernetes也释出了1.2新版。超过680位开源开发者参与。新版最大特色是扩充能力大幅提高了400%,单个集群可管...

22080
来自专栏安恒信息

邮箱安全服务第6期 | 邮箱自身系统安全的防御部署实践

前面几期我们介绍的是发现邮箱安全问题和分析问题,本期我们介绍一下邮箱系统安全防御及加固手段,可以重点解决邮箱系统通用应用漏洞缺陷防护和邮箱反入侵问题。为解决邮箱...

30460
来自专栏用户2442861的专栏

python项目打包部署

作者:张博 链接:https://www.zhihu.com/question/38081354/answer/81829426 来源:知乎 著作权归作者...

4.8K10
来自专栏生信技能树

R包终极解决方案

写在前面: 在如何通过Google来使用ggplot2可视化这篇文章中,我们曾经介绍过R语言在生物信息学中的重要性。 这篇文章也激发了很多小伙伴学习的热情。学习...

70670
来自专栏大脸仔的专栏

基于Discuz的Mysql云数据库搬迁实例解析

最近在尝试将创梦者(cm-z.net)数据库搬迁到腾讯云数据库。但是直接导出,然后再导入数据库出现如下错误。下面我就详细阐述下,面对数据库导入出现错误时我的解决...

1.5K20
来自专栏杨建荣的学习笔记

从零开始搭建Nginx和Tomcat的web集群环境

一直以来对于web服务器对tomcat还是很熟悉了,但是很对于nginx还是有些陌生,一看到nginx的配置就让人有一种莫名的排斥,这就是对于陌生的恐惧,我们今...

40050
来自专栏三木的博客

基于Linux与lpc3250开发板的交叉开发环境搭建

###一、Bootloader的安装(在windows下进行) 1、什么是Bootloader: 要想弄明白什么是Bootloader,我们先从PC上的boot...

22980
来自专栏程序员的碎碎念

如何解决Python包依赖问题

以简洁高效(指编程较为高效, 而不是运行速度)出名的Python, 在包依赖问题上有时候让人挠头.

24520

扫码关注云+社区

领取腾讯云代金券