- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想试试OVS(软件Linux交换机)http://openvswitch.org/使用我的 LXC 容器,Ubuntu 作为主机和 guest 。所以我安装了它:
# apt-get install openvswitch-switch
根据此文档配置 https://infologs.wordpress.com/2015/06/19/how-to-attach-lxc-container-to-ovs-openvswitch/
创建测试容器:
# lxc-create -t ubuntu -n veth03-ovs -- -r trusty
创建 ovs 网桥并为其分配 IP:
# ovs-vsctl add-br switch0
# ip add add 192.168.100.1/24 dev switch0
让它成为新网络 192.168.100.0/24 并且 switch0(根据我的理解)将是那里的第一个地址(网关)。
看起来不错:
# ip a
...
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
link/ether 52:9d:e1:60:1d:56 brd ff:ff:ff:ff:ff:ff
5: switch0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
link/ether 16:63:eb:47:13:41 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.1/24 scope global switch0
valid_lft forever preferred_lft forever
桥接口(interface)状态:
# ovs-vsctl show
1b236728-4637-42a5-8b81-53d4c93a6803
Bridge "switch0"
Port "switch0"
Interface "switch0"
type: internal
ovs_version: "2.3.2"
编辑 veth03-ovs 容器的 LXC 配置以使用此桥:
# vim /var/lib/lxc/veth03-ovs/config
...
lxc.network.type = veth
lxc.network.flags = up
lxc.network.script.up = /etc/lxc/ifup
lxc.network.script.down = /etc/lxc/ifdown
# lxc.network.veth.pair = lxc0
lxc.network.hwaddr = 00:16:3e:15:b3:62
lxc.network.ipv4 = 192.168.100.10
所以我想指向192.168.100.10作为容器的内部接口(interface)。
/etc/lxc/ifup 和 /etc/lxc/ifdown 在容器启动/停止后为此桥添加/删除端口。
# cat /etc/lxc/ifup
#!/bin/bash
BRIDGE=”switch0″
ovs-vsctl –may-exist add-br $BRIDGE
ovs-vsctl –if-exists del-port $BRIDGE $5
ovs-vsctl –may-exist add-port $BRIDGE $5
# cat /etc/lxc/ifdown
#!/bin/bash
ovsBr=’switch0′
ovs-vsctl –if-exists del-port ${ovsBr} $5
所以现在我想启动容器但得到:
# lxc-start -n veth03-ovs --logfile /tmp/log
lxc-start: lxc_start.c: main: 344 The container failed to start.
lxc-start: lxc_start.c: main: 346 To get more details, run the container in foreground mode.
lxc-start: lxc_start.c: main: 348 Additional information can be obtained by setting the --logfile and --logpriority options.
# cat /tmp/log
lxc-start 1448974395.199 ERROR lxc_conf - conf.c:run_buffer:342 - Script exited with status 1
lxc-start 1448974395.225 ERROR lxc_conf - conf.c:lxc_create_network:3079 - failed to create netdev
lxc-start 1448974395.225 ERROR lxc_start - start.c:lxc_spawn:950 - failed to create the network
lxc-start 1448974395.225 ERROR lxc_start - start.c:__lxc_start:1213 - failed to spawn 'veth03-ovs'
lxc-start 1448974400.730 ERROR lxc_start_ui - lxc_start.c:main:344 - The container failed to start.
lxc-start 1448974400.730 ERROR lxc_start_ui - lxc_start.c:main:346 - To get more details, run the container in foreground mode.
lxc-start 1448974400.730 ERROR lxc_start_ui - lxc_start.c:main:348 - Additional information can be obtained by setting the --logfile and --logpriority options.
我假设 lxc.network.script.up/lxc.network.script.down 脚本中的错误,并且它没有得到 $5
参数,应该是LXC传递给OVS的中间接口(interface)。但我不确定。
LXC 支持 Open vSwitch 吗? https://github.com/lxc/lxc/issues/256
最佳答案
是我的错。我刚刚从 Wordpress 博客复制了 ifup/ifdown
脚本。但是有错别字:
ovs-vsctl –may-exist add-br $BRIDGE
但应该是:
ovs-vsctl --may-exist add-br $BRIDGE
--
,不仅仅是可能
之前的-
。在 ifup/ifdown
脚本中到处都是一样的。所以它们应该看起来像这样:
# cat /etc/lxc/ifup
#!/bin/bash
BRIDGE=switch0
ovs-vsctl --may-exist add-br $BRIDGE
ovs-vsctl --if-exists del-port $BRIDGE $5
ovs-vsctl --may-exist add-port $BRIDGE $5
# cat /etc/lxc/ifdown
#!/bin/bash
ovsBr=switch0
ovs-vsctl --if-exists del-port ${ovsBr} $5
关于ubuntu - 带有 Open vSwitch 的 LXC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34021070/
从文档中不清楚 lxc start 和 lxc-start 之间的区别是什么,--help 提供了不同的用法和开关。教程使用这两种变体,但更深入地研究文档,lxc-start 似乎适用于在容器内运行的
当我尝试运行我的 lxc容器,我得到: lxc-start: 100: lxccontainer.c: wait_on_daemonized_start: 751 No such file or di
我目前有 3 个 IP 地址连接到同一台服务器。主机上的/etc/network/interfaces 文件如下: auto eth0 iface eth0 inet static addre
如果你看看 Docker 的特性,大部分都已经由 LXC 提供了。那么Docker添加了什么?为什么我要在普通 LXC 上使用 Docker? 最佳答案 来自 D
观察结果: lxc-webpanel功能符合预期 从命令行界面发出 lxc 命令并返回非零退出状态 1 从 python 解释器中的 lxclite 模块调用的函数引发异常 问题: 如何找到允许 lx
我试图在另一台机器上运行交叉编译的 lxc 图像,如下所示:我通过命令在 ubuntu 14.04 上创建了一个 lxc 图像: lxc-create -t /usr/share/lxc/templa
我是 LXC 容器的新手,正在使用 LXC v2.0。我想将设置传递给在我的容器内运行的进程(特别是它们的 Systemd 服务文件的命令行参数。 我正在考虑通过配置文件 lxc.environmen
我有一组连接到局域网的服务器。我可以在一台机器上安装和使用LXD容器,但是我一生都无法在网络上看到这些容器。我试图遵循这些网址,但无济于事: https://www.simpleprecision.c
我想在lxc 1.0.5和Ubuntu 14.04中创建一个不带“rootfs”的容器。 我之前在lxc的以前版本中已经做到了。在以前的版本中,如果我们使用不带“-t”选项的lxc-create,它将
我将用一个例子来解释这个问题。假设我们在同一镜像上运行两个单独的进程。其中之一创建文件并继续执行。我需要在不同容器中运行的其他进程来查看,检查和更改此文件。 提前致谢。 最佳答案 您可以使用这些卷。这
我想知道LXC是如何实现网络命名空间的。一个特定方面是它如何将命名空间中的虚拟接口(interface)连接到物理接口(interface)。假设一个命名空间中的网络连接到一个veth,根命名空间使用
我正在配置 Linux 内核 3.10.31ltsi 并想添加对 LXC 所需的支持,据我了解,cgroups 和命名空间应可用于 LXC,但需要包含哪些 menuconfig 中的配置? 最佳答案
我使用以下配置将 lirc0 绑定(bind)到容器中。 lxc.mount.entry = /dev/lirc0 dev/lirc0 none bind,optional,create=file 主
我的理解是否正确,内核模块不应加载到 LXC 内部,而只能加载到主机上,因为容器共享主机的内核? 最佳答案 不,您可以像任何 linux 系统一样在 LXC 中安装内核模块。但是你可以使用 secco
当我在它核心的容器上运行代码时,我无法在我的容器上找到它(或者核心文件没有被存储)。 ulimit -c 设置为 unlimited /proc/sys/kernel/core_pattern 设置为
我是 ansible 的新用户,我正在尝试在 yaml 脚本中启动 lxc init: - name: Copy LXC init file ansible.builtin.copy:
我正在编写一个将在 LXC 容器中运行的二进制文件。我控制二进制文件的源代码,但不控制它将在其中运行的容器的内容。特别是,我不想通过将二进制文件写入容器来污染容器。 有什么方法可以运行存储在主机上的二
我正在尝试使用 Docker 自动执行以下循环:生成一个容器,在其中执行一些工作(多个命令),从容器中获取一些数据。 类似的东西: for ( i = 0; i 不幸的是,随着指令列表的复杂性增加
我正在设置 LXD 来玩魔术。我希望存储仅安装在我的 RAID 设备上,因此最好删除默认存储或替换/重定向它。 我无法删除默认存储,因为默认配置文件使用它。 我如何使用 RAID 存储并确保它没有使用
我想了解LXC,并且遇到了这个网站:https://linuxcontainers.org/lxc/introduction/;在此站点中,它讨论了LXC,LXD等。 我有点困惑,给人的印象是LXC是
我是一名优秀的程序员,十分优秀!