标签: openstack

Vagrant、Docker、Chef 和 OpenStack(或类似产品)之间的关系?

我是一名 Web 开发人员,但我也对一些管理任务感兴趣。因此,从纯管理转向开发运营的新举措对我来说很方便。

无论如何,我有一些问题要将一些事情放入关系中。也许没有,所以我想寻求帮助澄清。

基本上,我想关联的是四种类型的软件(根据我的理解)。确切的产品并不重要,您可以放置​​任何类似的软件作为替代:

  • Vagrant:我的理解是自动创建和管理 VM:设置、启动和停止它们。这可以使用本地 VM 或远程(例如在云平台上)来完成。
  • Docker:一种“轻量级 VM”,基于一些 Linux 内核概念,可用于隔离运行进程,例如在共享 Web 托管环境中。
  • Chef:设置和配置操作系统的工具,例如在 VM 中。
  • OpenStack:一种允许您构建自己的私有云的工具,因此可以与 AWS 之类的东西相媲美。

问题 1:我的解释是对的,还是我对这些消费的某些(或全部)有误?

问题 2:我如何混合所有这些工具?这有什么意义吗?

在我的想象和我的理解中,你可以去

  • 使用 OpenStack 构建您自己的云,
  • 使用 Vagrant 来管理运行在云端的虚拟机,
  • 使用 Chef 来设置这些 VM
  • 最后使用 Docker 在 VM 内运行进程。

这样对吗?如果是这样,你能给我一个关于如何开始使用所有这些的建议(同时使用很多,我还不知道从哪里开始)?

chef lxc openstack vagrant docker

57
推荐指数
1
解决办法
2万
查看次数

如何设置缓存网络共享的 NFS 服务器?

用户数据存储在两个相当大(>1 PB)的 OpenStack Swift 存储集群上。让它们成为Cluster ACluster B

此外,还有几个PoP需要与该数据进行交互。这些 PoP 中的服务器实际上是无盘的,这意味着没有用户数据存储在它们上面,也没有下载到它们。PoP 可以分为一般的世界区域(例如北美南非中欧等)。

一些 PoP 与任何集群的 Swift 端点相距很远,从而引入了不受欢迎的延迟。为了在一定程度上缓解这种情况,我想在每个区域中设置一个缓存网关服务器,它将缓存 r/w 请求到最近的集群。

目前,任何 PoP 中的客户端都通过永久安装的swift 虚拟文件系统访问用户数据,这是一个 FUSE 模块,将 Swift 对象存储安装为块设备(或多或少)。然而,svfs 并不是那么稳定,在未来,客户端应该通过 NFS 访问缓存服务器。

这是所需架构的一个分支的图:

+------------------+                +------------------+    NFS   +------------------+
|    Cluster A     |     SVFS       |  Region 1 Cache  +---------->  R1 PoP a Client |
|                  +---------------->                  |          |                  |
|Persistent Storage|                |Ephemeral  Storage+----+     |Generates R/W Load|
+-----------------++                +------------------+    | …
Run Code Online (Sandbox Code Playgroud)

nfs network-share disk-cache openstack

14
推荐指数
1
解决办法
2187
查看次数

关闭对 ssh 密钥的严格检查

每个用户每天创建和销毁 15 个以上的 VM。VM 在公司内部的 OpenStack 云中创建。

每次为新虚拟机分配一个先前已分发的 IP 地址时,用户都会收到可怕的主机密钥验证失败错误。这是因为 ssh 密钥与用户known_hosts文件中的 IP 地址不匹配。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xxxxxxxxxxx
Please contact your system administrator.
Add correct host key …
Run Code Online (Sandbox Code Playgroud)

ssh ssh-keygen ssh-keys openstack

12
推荐指数
3
解决办法
3万
查看次数

为什么 OpenStack 区分图像和快照?

通常,https : //serverfault.com/a/268727/126950

  • 快照 = 准确捕获卷在特定时刻的样子,包括它的所有数据。
  • 图像 = 系统的总快照(不保存用户数据)

但是,http : //docs.openstack.org/folsom/openstack-ops/content/snapsnots.html

在 OpenStack 中,实例快照是一个映像。直接上传到glance 的图像与通过快照创建的图像之间的唯一区别在于,通过快照创建的图像在glance 数据库中具有附加属性。

那么为什么 OpenStack 将图像与快照区分开来呢?

snapshot openstack

11
推荐指数
1
解决办法
1万
查看次数

Vagrant (Virtualbox) 仅主机多节点网络问题

我正在尝试使用多 VM vagrant 环境作为部署 OpenStack 的测试平台,并且在尝试从一个 VM 到 VM-inside-of-a-VM 进行通信时遇到了网络问题。

我有两个 Vagrant 节点,一个云控制器节点和一个计算节点。我正在使用仅主机网络。我的 Vagrantfile 看起来像这样:

Vagrant::Config.run do |config|

  config.vm.box = "precise64"

  config.vm.define :controller do |controller_config|
    controller_config.vm.network :hostonly, "192.168.206.130" # eth1
    controller_config.vm.network :hostonly, "192.168.100.130" # eth2
    controller_config.vm.host_name = "controller"
  end

  config.vm.define :compute1 do |compute1_config|
    compute1_config.vm.network :hostonly, "192.168.206.131" # eth1
    compute1_config.vm.network :hostonly, "192.168.100.131" # eth2
    compute1_config.vm.host_name = "compute1"
    compute1_config.vm.customize ["modifyvm", :id, "--memory", 1024]
  end
end
Run Code Online (Sandbox Code Playgroud)

当我尝试启动一个(基于 QEMU 的)VM 时,它在计算 1 上成功启动,并且它的虚拟网卡 (vnet0) 通过桥接器 br100 连接:

root@compute1:~# brctl show 100
bridge name bridge …
Run Code Online (Sandbox Code Playgroud)

networking virtualbox qemu openstack vagrant

9
推荐指数
1
解决办法
8677
查看次数

libvirt 网络错误 - 未找到“默认”网络设备

我的初衷是为openstack创建centos镜像。虽然我直接用kvm做了,但仍然想知道错误。

正在使用手册来完成我的任务。

在这个命令之后:

# virt-install --virt-type kvm --name centos-6.4 --ram 1024 \
--cdrom=/data/isos/CentOS-6.4-x86_64-netinstall.iso \
--disk /tmp/centos-6.4.qcow2,format=qcow2 \
--network network=default \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel6
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

ERROR    Error in network device parameters: Virtual network 'default' does not exist: Network not found: no network with matching name 'default'
Run Code Online (Sandbox Code Playgroud)

不用说,我正在使用RDO。默认情况下,我没有为 libvirt 预先配置任何网络设备。问题是哪些网络设备可用?或者如果没有,如何创建一个?也许 RDO 在 libvirt 网络上有不同的方法?

centos libvirt openstack kvm-virtualization

8
推荐指数
3
解决办法
5万
查看次数

监控虚拟机的资源(CPU、RAM 等)

我正在测试 Openstack,我想知道如何了解实例(虚拟机)内的资源利用率。

Openstack 在我的测试环境中使用 kvm、qemu 和 libvirt。有没有办法在不登录机器的情况下获取这些统计信息(CPU、内存、交换、网络流量)?我想从管理程序或通过 libvirt 收集这些数据。

有什么建议?

monitoring libvirt qemu openstack kvm-virtualization

7
推荐指数
1
解决办法
2万
查看次数

当应用于本地目的地流量时,DNAT 和 REDIRECT 是否等效?

在设置我们的 OpenStack 环境时,我遇到了一个问题,即阻止实例联系在主机上运行的服务器。元数据服务(暴露 HTTP API)在主机的 8775 端口上运行,OpenStack 网络代码添加以下 DNAT 规则以通过端口 80 上的特殊地址授予访问权限:

-A PREROUTING -d 169.254.169.254/32 
  -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8775 
Run Code Online (Sandbox Code Playgroud)

实例通过本地桥接设备连接到主机,并169.254.169.254分配给lo.

虽然此规则成功匹配来自尝试访问的来宾实例的数据包http://169.254.168.254/,但它们永远不会到达侦听服务。

用基本上等效的 REDIRECT 替换此 DNAT 规则可使一切正常工作:

-A PREROUTING -d 169.254.169.254/32 
  -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8775 
Run Code Online (Sandbox Code Playgroud)

我试图理解为什么 REDIRECT 起作用而 DNAT 失败。从 iptables 文档中不清楚该DNAT规则是否适用于本地目标流量。我希望这里有人可以提供权威的答案,最好有文档支持,或者可以建议我的配置中可能有什么问题阻止了 DNAT 规则按预期工作。

networking nat iptables openstack

6
推荐指数
1
解决办法
2081
查看次数

只有在桥上运行 tcpdump 时才会转发数据包

在尝试使用 OpenStack调试网络问题时,我遇到了最奇怪的事情。我正在虚拟机之间进行 ping 测试。如果我在运行 nova-network 的节点上的网桥接口上执行了“tcpdump”,ICMP 请求数据包才会到达目标主机,该节点会转发数据包。如果我停止在该接口上执行 tcpdump,则不再看到请求到达主机。

一般来说,如何/为什么在 Linux 网桥接口上执行 tcpdump 会影响数据包是否被转发?

linux icmp bridge tcpdump openstack

6
推荐指数
1
解决办法
2914
查看次数

OpenStack 对家庭服务器有意义吗?

我目前有一台运行 FreeNAS 的家庭服务器 (HP N40L),为我的家庭提供一些基本的东西,比如文件服务器、媒体流和一些虚拟化应用程序 + 一个 Windows XP 虚拟桌面。

它运行良好,但该软件总是落后于基于 Linux 的系统上可用的软件。我已经尝试过 OpenMediaVault 和其他一些,它们看起来都不错,但我真的很喜欢 OpenStack 随心所欲地设置和拆除服务的能力(另外,Web 管理控制台非常好)。我可以直接使用 Docker 解决方案,如果结果证明 OpenStack 对我的设置来说太过分了,我会这样做。

那么,鉴于以下情况,为家庭服务器运行 OpenStack 是否有意义:

  • 我只有一台机器来运行所有东西(并且不打算购买更多)
  • 我会做一些常见的家庭服务器类型的事情,但希望能够在不污染我的主机操作系统的情况下测试新软件(并且可能部署一些基本的网络应用程序供我个人使用)。

我特别担心冗余存储。我目前在镜像阵列中使用 ZFS。OpenStack 使用不同的存储方案。如果我在一台机器上使用 OpenStack 的存储,我的数据会不会受到硬盘驱动器故障和 bitrot 的影响?

openstack

6
推荐指数
1
解决办法
1万
查看次数