チャレンジ2 で書いているプロミスキャスモードを有効にすることで、有線LAN接続では、この方法でもネットワーク上のホストと接続できることを確認済み
- ホストで実行
lxc config device add <コンテナ名> eth1 nic name=eth1 nictype=macvlan parent=enp0s8
- コンテナ内で実行
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=yes
HOSTNAME=centos7-1
NM_CONTROLLED=no
TYPE=Ethernet
MTU=
DHCP_HOSTNAME=`hostname`
systemctl restart network
有線LAN接続であれば、この方法でネットワーク上のホストと接続できることを確認済み
ホストで実行
- default プロファイルを複製
lxc profile copy default lanprofile
- LANに出て行く NIC を確認(enp0s8)
ip route show default 0.0.0.0/0
- 複製した lanprofile の設定を変更
lxc profile device set lanprofile eth0 nictype macvlan
lxc profile device set lanprofile eth0 parent enp0s8
- 設定を確認
lxc profile show lanprofile
- LANに出て行く NIC をプロミスキャスモードに設定
sudo ip link set enp0s8 promisc on
または
sudo ifconfig enp0s8 promisc
- コンテナを作成
lxc launch -p lanprofile images:centos/7/amd64 centos7-1
- ネットワーク状況を確認
lxc exec centos7-1 ip a s
- DHCP で IPアドレスを取得
lxc exec centos7-1 dhclient eth0
- IPアドレスが取れたか確認
lxc exec centos7-1 ip a s
- 起動時にプロミスキャスモードに設定する
sudo vi /etc/rc.local
#!/bin/sh
/sbin/ip link set enp0s8 promisc on
sudo chmod 755 /etc/rc.local
あとはコンテナ起動時に DHCP サーバから IPアドレスを取得する設定をする
(例)
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
HOSTNAME=mycentos
NM_CONTROLLED=no
TYPE=Ethernet
MTU=
DHCP_HOSTNAME=mycentos
lxc network attach <ホスト側のプロミスキャスなNIC> <コンテナ名> <コンテナに割り当てるNIC>
(例)
lxc network attach eth0 mycentos eth1
パーティションを作成
sudo fdisk /dev/sdb
Command (m for help): n
Select (default p): p
Partition number (1-4, default 1): 1
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Command (m for help): w
sudo pvcreate /dev/sdb1
sudo pvdisplay
sudo vgcreate VGdata /dev/sdb1
sudo vgdisplay
sudo lvcreate -n LVdata -l 100%FREE VGdata
sudo lvdisplay
sudo mkfs -t ext4 /dev/mapper/VGdata-LVdata
sudo mkdir /data
sudo mount -t ext4 /dev/mapper/VGdata-LVdata /data
sudo vi /etc/fstab
/dev/mapper/VGdata-LVdata /data ext4 defaults,noatime 0 0
sudo mkdir /data/lxd
lxc storage create pool2 dir source=/data/lxd
lxc storage list
lxc storage info <プール名>
lxc launch -p lanprofile -s pool2 images:centos/7/amd64 <コンテナ名>
lxc profile device set lanprofile root pool pool2
sudo fdisk /dev/sdc
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-629145599, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-629145599, default 629145599):
Created a new partition 1 of type 'Linux' and of size 300 GiB.
Command (m for help): w
lxc storage create lvmpool lvm source=/dev/sdc1
lxc publish hoge-container --alias hoge-image
lxc image list
lxc init hoge-image -p lanprofile -s lvmpool hoge2-container
lxc list
lxc info hoge2-container
lxc delete hoge-container
lxc mv hoge2-container hoge-container
lxc list
lxc image delete hoge-image
lxc image list
lxc storage volume create <ストレージプール名> <作成するボリューム名>
lxc storage volume show <ストレージプール名> <表示するボリューム名>
lxc storage volume list <表示対象ストレージプール名>
lxc storage volume attach <ストレージプール名> <ボリューム名> <コンテナ名> <マウントポイント>
ボリュームをデタッチ
lxc storage volume detach <ストレージプール名> <ボリューム名> <コンテナ名>
lxc config device add <コンテナ名> <共有名> disk source=<ホストのディレクトリ> path=<コンテナのディレクトリ>