kvmでCephを導入

　ほぼ忘備録
# 環境
Ubuntu 18.04LTS Server
corei5の７世代あたり
メモリ16GB 
HDD 1TB

めんどくさくなってきてコントローラーノードはホストマシンがやってる。

# お約束
```
user:~$ apt update
user:~$ apt install qemu-kvm libvirt-bin libvirt0 virt-install
user:~$ sudo systemctl enable libvirt-bin
```

# br0の作成
　個人的にブリッジ接続で動かしたかったので、以下の[リンク](https://symfoware.blog.fc2.com/blog-entry-2152.html)をもとに設定
。

NAT用ブリッジ接続を削除。まずは確認

```
user:~$ brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.525400c41bcd       yes             virbr0-nic

```

```
user:~$ sudo virsh net-autostart default --disable
Network default unmarked as autostarted

user:~$ sudo virsh net-destroy default
Network default destroyed

user:~$ brctl show
bridge name    bridge id        STP enabled    interfaces
None
```

既存のインターフェイスを確認

```
user:~$ ip a
enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global dynamic noprefixroute enp5s0
     valid_lft 11373sec preferred_lft 11373sec
```

/etc/netplan/50-cloud-init.yamlを編集。

```
user:~$sudo vi /etc/netplan/50-cloud-init.yaml
```

```
network:
    ethernets:
        enp5s0:
            dhcp4: false
            dhcp6: false
    bridges:
        br0:
            interfaces: [enp5s0]
            addresses: [192.168.1.10/24]
            gateway4: 192.168.1.1
            nameservers:
                addresses: [192.168.1.1]
            dhcp4: false
            optional: true
    version: 2
```

設定の適用

```
user:~$sudo netplan apply
 
# 動作確認
user:~$ip addr
user:~$sudo brctl show
```

で自分をlibvirt周りに追加して(要らない気がする)

```
user:~$ sudo adduser user libvirt
user:~$ sudo adduser user libvirt-qemu
```

isoファイルを保存(要らなかった)

```
user:~$ sudo mkdir /var/lib/libvirt/iso
user:~$ sudo wget http://releases.ubuntu.com/18.04/ubuntu-18.04.1.0-live-server-amd64.iso
user:~$ sudo chown libvirt-qemu:user /var/lib/libvirt/iso/ubuntu-18.04.1.0-live-server-amd64.iso

```

ほぼ[こっち](https://www.server-world.info/query?os=Ubuntu_18.04&p=kvm&f=2)のパクリ

イメージ作成

```
user:~# virt-install \
--name ubuntu1804 \
--ram 4096 \
--disk path=/var/kvm/images/ubuntu1804.img,size=30 \
--vcpus 2 \
--os-type linux \
--os-variant ubuntu18.04 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://jp.archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/' \
--extra-args 'console=ttyS0,115200n8 serial'
```

ゲストをシャットダウン

```
user:~# virsh shutdown ubuntu1804 
Domain template is being shutdown
```


ゲスト領域をマウントしてサービスを有効にする

```
user:~# guestmount -d ubuntu1804 -i /mnt 
user:~# ln -s /mnt/lib/systemd/system/getty@.service /mnt/etc/systemd/system/getty.target.wants/getty@ttyS0.service 
user:~# umount /mnt
```


再度起動し、コンソールに接続

```
user:~# virsh start ubuntu1804 --console 
```

ホストに戻ってCeph稼働用のユーザーを作ってsudo権限を作っておきます。

```
user:~# sudo adduser ceph
user:~# sudo gpasswd -a ceph sudo
```

アカウント切り替え

```
user:~# sudo su ceph
ceph@ubuntu:~$ 
```

で、管理ツールのインストール

```
ceph@ubuntu:~$ sudo apt -y install libguestfs-tools virt-top
```

各ノードにコンソールで入ってcephアカウントを作ってsudo権限を付ける

```
user:~# sudo adduser ceph 
user:~# sudo gpasswd -a ceph sudo
user:~# sudo su ceph
ceph@ubuntu:~$ echo -e 'Defaults:ceph !requiretty\nubuntu ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph
ceph@ubuntu:~$ sudo apt -y install openssh-server python-ceph
 
```

Ceph管理ユーザーから一斉に各ノードを動かせると良いよね～ってことで鍵を作ってアクセスできるように。

```
ceph@ubuntu:~$ ssh-keygen 
ceph@ubuntu:~$ vi ~/.ssh/config

Host ubuntu
    Hostname Hostのip
    User ceph
Host ubuntu1
    Hostname ubuntu1804のip
    User ceph
Host ubuntu2
    Hostname ubuntu1804_2のip
    User ceph
Host ubuntu3
    Hostname ubuntu1804_3のip
    User ceph

ceph@ubuntu:~$ chmod 600 ~/.ssh/config
ceph@ubuntu:~$ ssh-copy-id ubuntu1
ceph@ubuntu:~$ ssh-copy-id ubuntu2
ceph@ubuntu:~$ ssh-copy-id ubuntu3

```

コントローラーノードから設定

```
ceph@ubuntu:~$ sudo apt -y install ceph-deploy ceph-common ceph-mds
ceph@ubuntu:~$ mkdir ceph 
ceph@ubuntu:~$ cd ceph
ceph@ubuntu:~$ ceph-deploy new ubuntu1
ceph@ubuntu:~$ ceph-deploy new ubuntu1
ceph@ubuntu:~$
```