You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
4.2 KiB
Bash
63 lines
4.2 KiB
Bash
#!/bin/bash
|
|
|
|
docker network create --attachable --driver overlay --opt encrypted --subnet=10.13.37.0/23 --ip-range=10.13.36.0/24 ceph
|
|
|
|
|
|
#mon
|
|
ip='10.13.37.2'
|
|
docker run -d --rm --net=ceph --hostname $(hostname) -v /ceph/mon/etc/ceph:/etc/ceph -v /ceph/mon/var/lib/ceph:/var/lib/ceph --ip "$ip" -e MON_IP="$ip" -e CEPH_PUBLIC_NETWORK=10.13.37.0/23 -e CEPH_CLUSTER_NETWORK=10.13.37.0/23 --name ceph_mon docker.io/ceph/daemon:latest-nautilus mon
|
|
|
|
|
|
#mgr
|
|
mkdir -p /ceph/mgr/etc/ceph/
|
|
(docker exec ceph_mon ceph config generate-minimal-conf) > /ceph/mgr/etc/ceph/ceph.conf
|
|
cp -a /ceph/mon/etc/ceph/ceph.client.admin.keyring /ceph/mgr/etc/ceph/
|
|
docker run --rm --net=ceph --hostname $(hostname) -v /ceph/mgr/etc/ceph:/etc/ceph -v /ceph/mgr/var/lib/ceph:/var/lib/ceph --name ceph_mgr docker.io/ceph/daemon:latest-nautilus mgr
|
|
rm /ceph/mgr/etc/ceph/ceph.client.admin.keyring
|
|
docker run -d --rm --net=ceph --hostname $(hostname) -v /ceph/mgr/etc/ceph:/etc/ceph -v /ceph/mgr/var/lib/ceph:/var/lib/ceph --name ceph_mgr docker.io/ceph/daemon:latest-nautilus mgr
|
|
|
|
|
|
#osd
|
|
mkdir -p /ceph/osd_sdb/etc/ceph/ /ceph/osd_sdb/var/lib/ceph/bootstrap-osd /ceph/osd_sdb/var/lib/ceph/osd
|
|
(docker exec ceph_mon ceph auth get client.bootstrap-osd) > /ceph/osd_sdb/var/lib/ceph/bootstrap-osd/ceph.keyring
|
|
(docker exec ceph_mon ceph config generate-minimal-conf) > /ceph/osd_sdb/etc/ceph/ceph.conf
|
|
docker run --rm --net=ceph --hostname $(hostname) --privileged -v /ceph/osd_sdb/etc/ceph:/etc/ceph -v /ceph/osd_sdb/var/lib/ceph:/var/lib/ceph -v /dev:/dev --entrypoint ceph-volume docker.io/ceph/daemon:latest-nautilus lvm prepare --bluestore --dmcrypt --data /dev/sdb
|
|
rm /ceph/osd_sdb/var/lib/ceph/bootstrap-osd/ceph.keyring
|
|
|
|
mkdir -p /ceph/osd_sdc/etc/ceph/ /ceph/osd_sdc/var/lib/ceph/bootstrap-osd /ceph/osd_sdc/var/lib/ceph/osd
|
|
(docker exec ceph_mon ceph auth get client.bootstrap-osd) > /ceph/osd_sdc/var/lib/ceph/bootstrap-osd/ceph.keyring
|
|
(docker exec ceph_mon ceph config generate-minimal-conf) > /ceph/osd_sdc/etc/ceph/ceph.conf
|
|
docker run --rm --net=ceph --hostname $(hostname) --privileged -v /ceph/osd_sdc/etc/ceph:/etc/ceph -v /ceph/osd_sdc/var/lib/ceph:/var/lib/ceph -v /dev:/dev --entrypoint ceph-volume docker.io/ceph/daemon:latest-nautilus lvm prepare --bluestore --dmcrypt --data /dev/sdc
|
|
rm /ceph/osd_sdc/var/lib/ceph/bootstrap-osd/ceph.keyring
|
|
|
|
docker run -d --rm --net=ceph --hostname $(hostname) --privileged -v /ceph/osd00/etc/ceph:/etc/ceph -v /ceph/osd00/var/lib/ceph:/var/lib/ceph -v /dev:/dev -e OSD_ID=0 --name ceph_osd00 docker.io/ceph/daemon:latest-nautilus osd_ceph_volume_activate
|
|
docker run -d --rm --net=ceph --hostname $(hostname) --privileged -v /ceph/osd01/etc/ceph:/etc/ceph -v /ceph/osd01/var/lib/ceph:/var/lib/ceph -v /dev:/dev -e OSD_ID=1 --name ceph_osd01 docker.io/ceph/daemon:latest-nautilus osd_ceph_volume_activate
|
|
|
|
|
|
#mds
|
|
mkdir -p /ceph/mds/etc/ceph/ /ceph/mds/var/lib/ceph/bootstrap-mds
|
|
(docker exec ceph_mon ceph config generate-minimal-conf) > /ceph/mds/etc/ceph/ceph.conf
|
|
cp -a /ceph/mon/etc/ceph/ceph.client.admin.keyring /ceph/mds/etc/ceph/
|
|
docker run -d --rm --net=ceph --hostname $(hostname) -v /ceph/mds/etc/ceph:/etc/ceph -v /ceph/mds/var/lib/ceph:/var/lib/ceph -e CEPHFS_CREATE=1 --name ceph_mds docker.io/ceph/daemon:latest-nautilus mds
|
|
|
|
|
|
#client
|
|
mkdir -p /ceph/client/etc/ceph
|
|
docker exec ceph_mon ceph config generate-minimal-conf > /ceph/client/etc/ceph/ceph.conf
|
|
(docker exec ceph_mon ceph fs authorize cephfs client.$(hostname) / rws) > /ceph/client/etc/ceph/keyring
|
|
chmod 600 /ceph/client/etc/ceph/keyring
|
|
docker run -d --rm --net=ceph -v /cephfs:/cephfs:shared -v /ceph/client/etc/ceph:/etc/ceph --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined --name ceph_client --entrypoint ceph-fuse docker.io/ceph/daemon:latest-nautilus /cephfs -f --id $(hostname)
|
|
|
|
|
|
#set cephfs autoscaling
|
|
docker exec ceph_mon ceph fs set cephfs max_mds 2
|
|
docker exec ceph_mon ceph mgr module enable pg_autoscaler
|
|
docker exec ceph_mon ceph osd pool set cephfs_data pg_autoscale_mode on
|
|
docker exec ceph_mon ceph osd pool set cephfs_data target_size_ratio .8
|
|
docker exec ceph_mon ceph osd pool set cephfs_metadata pg_autoscale_mode on
|
|
docker exec ceph_mon ceph osd pool set cephfs_metadata target_size_ratio .2
|
|
|
|
|
|
#status
|
|
docker exec ceph_mon ceph status
|