LoginSignup
0
0

More than 3 years have passed since last update.

kvmでCephを導入

Posted at

 ほぼ忘備録

環境

Ubuntu 18.04LTS Server
corei5の7世代あたり
メモリ16GB
HDD 1TB

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

お約束

user:~$ apt update
user:~$ apt install qemu-kvm libvirt-bin libvirt0 virt-install
user:~$ sudo systemctl enable libvirt-bin

br0の作成

 個人的にブリッジ接続で動かしたかったので、以下のリンクをもとに設定

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

ほぼこっちのパクリ

イメージ作成

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:~$
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0