아빠 용돈으로 만든 Ceph Server, Cluster HAT + Raspberry Pi Zero를 구축했습니다.
13050 단어 ClusterHATRaspberryPiClusterCeph
입문
Ceph는 OpenStack과 Kubernetes의 세계에서Volume와Object Storage로 자주 사용되지만 분포식 시스템에서도 많은 노드가 필요하고 개인적인 용도로 집에서 사용하는 사람은 드물다.
또 세계에는 이미 개인 용도, 법인 용도의 저장 서비스가 많이 있어 매우 편리하고 싸다.
하지만 나는 많은 사람들이 Do It Yourself로 어떤 것도 구축하고 싶지 않다고 생각한다.이런 사람들이 꼭 추천해야 할 것은 이번에 소개된'아버지의 용돈으로 만든 Ceph Server'입니다.
아버지의 용돈은 사람에 따라 정의가 크게 달라지는데 이번 예산은 3만 엔 이내다.
개념
다음과 같은 개념으로 서버를 구축했습니다.
다음과 같은 개념으로 서버를 구축했습니다.
하드웨어
하드웨어 구성에는 다음과 같은 구성이 있습니다.나는 3만 엔 안에 발이 좀 있다고 생각한다.방법을 생각하느냐에 따라 더 싸게 살 수 있을 것이다.
외관
각 부품을 클러스터 HAT Case에 결합하면 다음 모양새가 표시됩니다.
크기가 아마존 에코 닷보다 조금 커서 상당히 작다고 생각합니다.
기본 노드
먼저 다음 명령을 사용하여 Raspberry Pi Zero의 각 노드를 초기화합니다.
요점은ceph의 데이터 영역이 LVM으로 구성되어 있다는 것이다.루트 파티션에 20GB를 할당하고 나머지 영역은 LVM으로 할당합니다.# node 電源ON
clusterhat on p1
# node に SSH login
node SSH login
ssh [email protected]
# volume のリサイズ
sudo resize2fs /dev/mmcblk0p2 20G
sudo fdisk /dev/mmcblk0
# d 2
# n p 2 98304 +20G w
sudo reboot
sudo resize2fs /dev/mmcblk0p2 20G
# LVM の設定
sudo fdisk /dev/mmcblk0
# n p 3 42041344 249737215
# t 3 8e w
sudo partprobe /dev/mmcblk0
sudo apt update
sudo apt install lvm2
# 再作成する場合は、古いリソースを一旦削除する
sudo lvremove /dev/vg1/lv1
sudo vgremove vg1
sudo pvremove /dev/mmcblk0p3
sudo pvcreate /dev/mmcblk0p3
sudo pvdisplay
sudo vgcreate vg1 /dev/mmcblk0p3
sudo vgdisplay
# filestore を使う場合は、journal volume(lv1-journal) を作成する
# rocksdb の場合は不要
sudo lvcreate --name lv1-journal --size 200MB vg1
sudo lvcreate --name lv1 --size 98GB vg1
sudo lvdisplay
# Swap ファイルのサイズを 2GB に増やす
sudo vi /etc/dphys-swapfile
+-+-
CONF_SWAPSIZE=2048
+-+-
sudo systemctl stop dphys-swapfile
sudo systemctl start dphys-swapfile
# SSH authorized_keys の設定
mkdir ~/.ssh
vi ~/.ssh/authorized_keys
소프트웨어 준비
Raspberry Pi의 운영 체제로서 Cluster HAT에서 제공하는 Raspbian을 사용합니다.기본적으로 Raspbian과 같지만 Cluster HAT를 제어하는 소프트웨어 등이 설치되어 있기 때문에 원시 Raspbian을 사용자 정의하는 것보다 더 편리하다.
한편, 이번 구조에서는 라즈베리 파이 제로가 삽입된 SD카드에 Ceph의 데이터 영역을 만들어야 하기 때문에 리눅스 LVM에 대응하는 Ceph version 12.2.8(Luminous)을 구축했다.
Raspberry Pi Zero를 위해 Ceph 2진 프로그램을 구축하려면 약간의 기교와 일주일 정도의 구축 시간이 필요합니다.아래의 문서를 참고하여 코드의 일부를 수정하면 순조롭게 운행할 수 있다.
LLVM 구축 프로세스
git clone https://github.com/llvm-mirror/llvm.git
cd llvm
git checkout release_70
cd tools
git clone https://github.com/llvm-mirror/clang.git
cd clang
git checkout release_70
cd ..
git clone https://github.com/llvm-mirror/lld.git
cd lld
git checkout release_70
cd ../../..
mkdir llvm-build
cd llvm-build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=ARM ../llvm
make
make install
update-alternatives --install /usr/bin/cc cc /usr/local/bin/clang 100
update-alternatives --install /usr/bin/c++ c++ /usr/local/bin/clang++ 100
update-alternatives --install /usr/bin/cpp cpp /usr/local/bin/clang-cpp 100
Ceph 패키지 구축 프로세스
curl -O http://www.trial-ride.net/patch-armhf-new.diff
git clone https://github.com/ceph/ceph.git
cd ceph
git checkout -b v12.2.8 refs/tags/v12.2.8
git submodule update --init --recursive
patch -p1 < ../patch-armhf-new.diff
./install-deps.sh
sed -i 's/\(WITH_CEPHFS_JAVA\)=ON/\1=OFF/' debian/rules
sudo apt install reprepro
git add .
git commit -m "support for raspbian"
./make-debs.sh /home/pi/ceph-build
cd /home/pi/ceph-build/Raspbian
tar czvf ceph-repo-12.2.8-armhf.tar.gz db dists pool stretch
배포 프로세스
Ceph의 배치 방법으로ceph-ansible를 사용했습니다.ceph-ansible는 각양각색의 구성에 대응하는 생산 품질의 배치 도구이기 때문에 경영자 개인뿐만 아니라 안심하고 사용할 수 있다.
다음 절차에 따라 배치를 실시하였다.# ceph-ansible のインストール
sudo apt install -y git
git clone https://github.com/ceph/ceph-ansible.git
cd ceph-ansible
export branch=stable-3.2
git checkout $branch
cd ~
# jewel をデプロイする場合は、stable-3.0 にする必要がある
# luminous, mimic の場合は stable-3.2 を指定する
sudo apt install -y virtualenv python-dev libffi-dev libssl-dev
virtualenv venv
source venv/bin/activate
# stable-3.0 の場合
pip install -r ceph-ansible/tests/requirements.txt
# stable-3.2 の場合
pip install -r ceph-ansible/requirements.txt
sudo mkdir /etc/ansible
sudo vi /etc/ansible/hosts
+++
[mons]
p1.local
p2.local
p3.local
[osds]
p1.local
p2.local
p3.local
[mgrs]
p1.local
p2.local
p3.local
[rgws]
p1.local
p2.local
p3.local
+++
sudo ln -s ~/ceph-ansible/group_vars /etc/ansible/group_vars
cd ~/ceph-ansible
cd group_vars
cp all.yml.sample all.yml
vi all.yml
+++
ceph_origin: repository
ceph_repository: custom
ceph_stable: True
ceph_stable_release: luminous
cephx: true
monitor_interface: "usb0"
journal_size: 2048
osd_mkfs_options_xfs: -f -i size=2048
osd_mount_options_xfs: noatime,largeio,inode64,swalloc
public_network: 172.19.181.0/24
cluster_network: 172.19.181.0/24
ceph_origin: repository
ceph_repository: custom
ceph_custom_repo: http://www.trial-ride.net/ceph-raspbian.armv6
+++
cp osds.yml.sample osds.yml
vi osds.yml
# filestore の場合
+++
osd_objectstore: filestore
osd_scenario: lvm
lvm_volumes:
- data: lv1
data_vg: vg1
journal: lv1-journal
journal_vg: vg1
+++
# rocksdb の場合
+++
osd_objectstore: bluestore
osd_scenario: lvm
lvm_volumes:
- data: lv1
data_vg: vg1
+++
cd ..
cp site.yml.sample site.yml
# デプロイの実行
ansible-playbook site.yml -b
데이텀 결과
rados bench를 실행한 결과는 다음과 같습니다.
성능에 관해서는 그다지 빠르지 않다.pi@p1:~ $ sudo rados mkpool mypool
pi@p1:~ $ sudo rados -p mypool bench 10 write -b 123
hints = 1
Maintaining 16 concurrent writes of 123 bytes to objects of size 123 for up to 10 seconds or 0 objects
Object prefix: benchmark_data_p1_13471
sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)
0 2 2 0 0 0 - 0
1 15 77 62 0.00708616 0.00727272 0.280682 0.232659
2 16 144 128 0.00740415 0.00774193 0.128686 0.231646
3 16 214 198 0.00766135 0.00821114 0.281453 0.231473
4 16 270 254 0.00738524 0.00656891 0.216874 0.24727
5 16 338 322 0.00749572 0.00797653 0.218095 0.243478
6 16 404 388 0.00753443 0.00774193 0.175373 0.24238
7 16 478 462 0.00769518 0.00868034 0.160927 0.239925
8 16 553 537 0.00782772 0.00879765 0.145773 0.235024
9 16 628 612 0.00793464 0.00879765 0.199223 0.231789
10 16 696 680 0.00793851 0.00797653 0.179024 0.231877
Total time run: 10.160294
Total writes made: 697
Write size: 123
Object size: 123
Bandwidth (MB/sec): 0.00804696
Stddev Bandwidth: 0.000705981
Max bandwidth (MB/sec): 0.00879765
Min bandwidth (MB/sec): 0.00656891
Average IOPS: 68
Stddev IOPS: 6
Max IOPS: 75
Min IOPS: 56
Average Latency(s): 0.232101
Stddev Latency(s): 0.0742895
Max latency(s): 0.733679
Min latency(s): 0.080719
Cleaning up (deleting benchmark objects)
Removed 697 objects
Clean up completed and total clean up time :8.070982
총결산
이번 문서에서 "아빠 용돈으로 Ceph Cluster 할 수 있나요?"Cluster HAT를 주제로 다양한 Cluster HAT를 쓰러뜨린 결과를 정리했다.
결과적으로 자신이 하는 것보다 클라우드 서비스를 사는 것이 더 빠르고 더 싸다.그렇긴 하지만 언젠가는 상황이 역전될 때가 올 거라고 예상합니다.
예를 들어 올해 Ceph Day Berlin에서 Ambedded 씨가 발표한 슬라이드를 보면 ARM을 바탕으로 ceph cluster를 구축하면 1개의 호스트에 고밀도로 많은 디스크를 설치하는 단점(NUMA Memory Access의 병목, 1개의 호스트가 고장나면 많은 OSD가 멈추고 서비스의 영향이 크다는 등)에서 해방된다전력 소비량을 줄일 수 있기 때문에 합리적으로 보인다.
올해 AWS EC2 등에서도 ARM 아키텍처를 사용할 수 있게 되면서 다양한 ARM에 바람이 불고 있다.앞으로 ARM의 움직임도 놓칠 수 없다.
먼저 다음 명령을 사용하여 Raspberry Pi Zero의 각 노드를 초기화합니다.
요점은ceph의 데이터 영역이 LVM으로 구성되어 있다는 것이다.루트 파티션에 20GB를 할당하고 나머지 영역은 LVM으로 할당합니다.
# node 電源ON
clusterhat on p1
# node に SSH login
node SSH login
ssh [email protected]
# volume のリサイズ
sudo resize2fs /dev/mmcblk0p2 20G
sudo fdisk /dev/mmcblk0
# d 2
# n p 2 98304 +20G w
sudo reboot
sudo resize2fs /dev/mmcblk0p2 20G
# LVM の設定
sudo fdisk /dev/mmcblk0
# n p 3 42041344 249737215
# t 3 8e w
sudo partprobe /dev/mmcblk0
sudo apt update
sudo apt install lvm2
# 再作成する場合は、古いリソースを一旦削除する
sudo lvremove /dev/vg1/lv1
sudo vgremove vg1
sudo pvremove /dev/mmcblk0p3
sudo pvcreate /dev/mmcblk0p3
sudo pvdisplay
sudo vgcreate vg1 /dev/mmcblk0p3
sudo vgdisplay
# filestore を使う場合は、journal volume(lv1-journal) を作成する
# rocksdb の場合は不要
sudo lvcreate --name lv1-journal --size 200MB vg1
sudo lvcreate --name lv1 --size 98GB vg1
sudo lvdisplay
# Swap ファイルのサイズを 2GB に増やす
sudo vi /etc/dphys-swapfile
+-+-
CONF_SWAPSIZE=2048
+-+-
sudo systemctl stop dphys-swapfile
sudo systemctl start dphys-swapfile
# SSH authorized_keys の設定
mkdir ~/.ssh
vi ~/.ssh/authorized_keys
소프트웨어 준비
Raspberry Pi의 운영 체제로서 Cluster HAT에서 제공하는 Raspbian을 사용합니다.기본적으로 Raspbian과 같지만 Cluster HAT를 제어하는 소프트웨어 등이 설치되어 있기 때문에 원시 Raspbian을 사용자 정의하는 것보다 더 편리하다.
한편, 이번 구조에서는 라즈베리 파이 제로가 삽입된 SD카드에 Ceph의 데이터 영역을 만들어야 하기 때문에 리눅스 LVM에 대응하는 Ceph version 12.2.8(Luminous)을 구축했다.
Raspberry Pi Zero를 위해 Ceph 2진 프로그램을 구축하려면 약간의 기교와 일주일 정도의 구축 시간이 필요합니다.아래의 문서를 참고하여 코드의 일부를 수정하면 순조롭게 운행할 수 있다.
LLVM 구축 프로세스
git clone https://github.com/llvm-mirror/llvm.git
cd llvm
git checkout release_70
cd tools
git clone https://github.com/llvm-mirror/clang.git
cd clang
git checkout release_70
cd ..
git clone https://github.com/llvm-mirror/lld.git
cd lld
git checkout release_70
cd ../../..
mkdir llvm-build
cd llvm-build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=ARM ../llvm
make
make install
update-alternatives --install /usr/bin/cc cc /usr/local/bin/clang 100
update-alternatives --install /usr/bin/c++ c++ /usr/local/bin/clang++ 100
update-alternatives --install /usr/bin/cpp cpp /usr/local/bin/clang-cpp 100
Ceph 패키지 구축 프로세스
curl -O http://www.trial-ride.net/patch-armhf-new.diff
git clone https://github.com/ceph/ceph.git
cd ceph
git checkout -b v12.2.8 refs/tags/v12.2.8
git submodule update --init --recursive
patch -p1 < ../patch-armhf-new.diff
./install-deps.sh
sed -i 's/\(WITH_CEPHFS_JAVA\)=ON/\1=OFF/' debian/rules
sudo apt install reprepro
git add .
git commit -m "support for raspbian"
./make-debs.sh /home/pi/ceph-build
cd /home/pi/ceph-build/Raspbian
tar czvf ceph-repo-12.2.8-armhf.tar.gz db dists pool stretch
배포 프로세스
Ceph의 배치 방법으로ceph-ansible를 사용했습니다.ceph-ansible는 각양각색의 구성에 대응하는 생산 품질의 배치 도구이기 때문에 경영자 개인뿐만 아니라 안심하고 사용할 수 있다.
다음 절차에 따라 배치를 실시하였다.# ceph-ansible のインストール
sudo apt install -y git
git clone https://github.com/ceph/ceph-ansible.git
cd ceph-ansible
export branch=stable-3.2
git checkout $branch
cd ~
# jewel をデプロイする場合は、stable-3.0 にする必要がある
# luminous, mimic の場合は stable-3.2 を指定する
sudo apt install -y virtualenv python-dev libffi-dev libssl-dev
virtualenv venv
source venv/bin/activate
# stable-3.0 の場合
pip install -r ceph-ansible/tests/requirements.txt
# stable-3.2 の場合
pip install -r ceph-ansible/requirements.txt
sudo mkdir /etc/ansible
sudo vi /etc/ansible/hosts
+++
[mons]
p1.local
p2.local
p3.local
[osds]
p1.local
p2.local
p3.local
[mgrs]
p1.local
p2.local
p3.local
[rgws]
p1.local
p2.local
p3.local
+++
sudo ln -s ~/ceph-ansible/group_vars /etc/ansible/group_vars
cd ~/ceph-ansible
cd group_vars
cp all.yml.sample all.yml
vi all.yml
+++
ceph_origin: repository
ceph_repository: custom
ceph_stable: True
ceph_stable_release: luminous
cephx: true
monitor_interface: "usb0"
journal_size: 2048
osd_mkfs_options_xfs: -f -i size=2048
osd_mount_options_xfs: noatime,largeio,inode64,swalloc
public_network: 172.19.181.0/24
cluster_network: 172.19.181.0/24
ceph_origin: repository
ceph_repository: custom
ceph_custom_repo: http://www.trial-ride.net/ceph-raspbian.armv6
+++
cp osds.yml.sample osds.yml
vi osds.yml
# filestore の場合
+++
osd_objectstore: filestore
osd_scenario: lvm
lvm_volumes:
- data: lv1
data_vg: vg1
journal: lv1-journal
journal_vg: vg1
+++
# rocksdb の場合
+++
osd_objectstore: bluestore
osd_scenario: lvm
lvm_volumes:
- data: lv1
data_vg: vg1
+++
cd ..
cp site.yml.sample site.yml
# デプロイの実行
ansible-playbook site.yml -b
데이텀 결과
rados bench를 실행한 결과는 다음과 같습니다.
성능에 관해서는 그다지 빠르지 않다.pi@p1:~ $ sudo rados mkpool mypool
pi@p1:~ $ sudo rados -p mypool bench 10 write -b 123
hints = 1
Maintaining 16 concurrent writes of 123 bytes to objects of size 123 for up to 10 seconds or 0 objects
Object prefix: benchmark_data_p1_13471
sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)
0 2 2 0 0 0 - 0
1 15 77 62 0.00708616 0.00727272 0.280682 0.232659
2 16 144 128 0.00740415 0.00774193 0.128686 0.231646
3 16 214 198 0.00766135 0.00821114 0.281453 0.231473
4 16 270 254 0.00738524 0.00656891 0.216874 0.24727
5 16 338 322 0.00749572 0.00797653 0.218095 0.243478
6 16 404 388 0.00753443 0.00774193 0.175373 0.24238
7 16 478 462 0.00769518 0.00868034 0.160927 0.239925
8 16 553 537 0.00782772 0.00879765 0.145773 0.235024
9 16 628 612 0.00793464 0.00879765 0.199223 0.231789
10 16 696 680 0.00793851 0.00797653 0.179024 0.231877
Total time run: 10.160294
Total writes made: 697
Write size: 123
Object size: 123
Bandwidth (MB/sec): 0.00804696
Stddev Bandwidth: 0.000705981
Max bandwidth (MB/sec): 0.00879765
Min bandwidth (MB/sec): 0.00656891
Average IOPS: 68
Stddev IOPS: 6
Max IOPS: 75
Min IOPS: 56
Average Latency(s): 0.232101
Stddev Latency(s): 0.0742895
Max latency(s): 0.733679
Min latency(s): 0.080719
Cleaning up (deleting benchmark objects)
Removed 697 objects
Clean up completed and total clean up time :8.070982
총결산
이번 문서에서 "아빠 용돈으로 Ceph Cluster 할 수 있나요?"Cluster HAT를 주제로 다양한 Cluster HAT를 쓰러뜨린 결과를 정리했다.
결과적으로 자신이 하는 것보다 클라우드 서비스를 사는 것이 더 빠르고 더 싸다.그렇긴 하지만 언젠가는 상황이 역전될 때가 올 거라고 예상합니다.
예를 들어 올해 Ceph Day Berlin에서 Ambedded 씨가 발표한 슬라이드를 보면 ARM을 바탕으로 ceph cluster를 구축하면 1개의 호스트에 고밀도로 많은 디스크를 설치하는 단점(NUMA Memory Access의 병목, 1개의 호스트가 고장나면 많은 OSD가 멈추고 서비스의 영향이 크다는 등)에서 해방된다전력 소비량을 줄일 수 있기 때문에 합리적으로 보인다.
올해 AWS EC2 등에서도 ARM 아키텍처를 사용할 수 있게 되면서 다양한 ARM에 바람이 불고 있다.앞으로 ARM의 움직임도 놓칠 수 없다.
git clone https://github.com/llvm-mirror/llvm.git
cd llvm
git checkout release_70
cd tools
git clone https://github.com/llvm-mirror/clang.git
cd clang
git checkout release_70
cd ..
git clone https://github.com/llvm-mirror/lld.git
cd lld
git checkout release_70
cd ../../..
mkdir llvm-build
cd llvm-build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=ARM ../llvm
make
make install
update-alternatives --install /usr/bin/cc cc /usr/local/bin/clang 100
update-alternatives --install /usr/bin/c++ c++ /usr/local/bin/clang++ 100
update-alternatives --install /usr/bin/cpp cpp /usr/local/bin/clang-cpp 100
curl -O http://www.trial-ride.net/patch-armhf-new.diff
git clone https://github.com/ceph/ceph.git
cd ceph
git checkout -b v12.2.8 refs/tags/v12.2.8
git submodule update --init --recursive
patch -p1 < ../patch-armhf-new.diff
./install-deps.sh
sed -i 's/\(WITH_CEPHFS_JAVA\)=ON/\1=OFF/' debian/rules
sudo apt install reprepro
git add .
git commit -m "support for raspbian"
./make-debs.sh /home/pi/ceph-build
cd /home/pi/ceph-build/Raspbian
tar czvf ceph-repo-12.2.8-armhf.tar.gz db dists pool stretch
Ceph의 배치 방법으로ceph-ansible를 사용했습니다.ceph-ansible는 각양각색의 구성에 대응하는 생산 품질의 배치 도구이기 때문에 경영자 개인뿐만 아니라 안심하고 사용할 수 있다.
다음 절차에 따라 배치를 실시하였다.
# ceph-ansible のインストール
sudo apt install -y git
git clone https://github.com/ceph/ceph-ansible.git
cd ceph-ansible
export branch=stable-3.2
git checkout $branch
cd ~
# jewel をデプロイする場合は、stable-3.0 にする必要がある
# luminous, mimic の場合は stable-3.2 を指定する
sudo apt install -y virtualenv python-dev libffi-dev libssl-dev
virtualenv venv
source venv/bin/activate
# stable-3.0 の場合
pip install -r ceph-ansible/tests/requirements.txt
# stable-3.2 の場合
pip install -r ceph-ansible/requirements.txt
sudo mkdir /etc/ansible
sudo vi /etc/ansible/hosts
+++
[mons]
p1.local
p2.local
p3.local
[osds]
p1.local
p2.local
p3.local
[mgrs]
p1.local
p2.local
p3.local
[rgws]
p1.local
p2.local
p3.local
+++
sudo ln -s ~/ceph-ansible/group_vars /etc/ansible/group_vars
cd ~/ceph-ansible
cd group_vars
cp all.yml.sample all.yml
vi all.yml
+++
ceph_origin: repository
ceph_repository: custom
ceph_stable: True
ceph_stable_release: luminous
cephx: true
monitor_interface: "usb0"
journal_size: 2048
osd_mkfs_options_xfs: -f -i size=2048
osd_mount_options_xfs: noatime,largeio,inode64,swalloc
public_network: 172.19.181.0/24
cluster_network: 172.19.181.0/24
ceph_origin: repository
ceph_repository: custom
ceph_custom_repo: http://www.trial-ride.net/ceph-raspbian.armv6
+++
cp osds.yml.sample osds.yml
vi osds.yml
# filestore の場合
+++
osd_objectstore: filestore
osd_scenario: lvm
lvm_volumes:
- data: lv1
data_vg: vg1
journal: lv1-journal
journal_vg: vg1
+++
# rocksdb の場合
+++
osd_objectstore: bluestore
osd_scenario: lvm
lvm_volumes:
- data: lv1
data_vg: vg1
+++
cd ..
cp site.yml.sample site.yml
# デプロイの実行
ansible-playbook site.yml -b
데이텀 결과
rados bench를 실행한 결과는 다음과 같습니다.
성능에 관해서는 그다지 빠르지 않다.pi@p1:~ $ sudo rados mkpool mypool
pi@p1:~ $ sudo rados -p mypool bench 10 write -b 123
hints = 1
Maintaining 16 concurrent writes of 123 bytes to objects of size 123 for up to 10 seconds or 0 objects
Object prefix: benchmark_data_p1_13471
sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)
0 2 2 0 0 0 - 0
1 15 77 62 0.00708616 0.00727272 0.280682 0.232659
2 16 144 128 0.00740415 0.00774193 0.128686 0.231646
3 16 214 198 0.00766135 0.00821114 0.281453 0.231473
4 16 270 254 0.00738524 0.00656891 0.216874 0.24727
5 16 338 322 0.00749572 0.00797653 0.218095 0.243478
6 16 404 388 0.00753443 0.00774193 0.175373 0.24238
7 16 478 462 0.00769518 0.00868034 0.160927 0.239925
8 16 553 537 0.00782772 0.00879765 0.145773 0.235024
9 16 628 612 0.00793464 0.00879765 0.199223 0.231789
10 16 696 680 0.00793851 0.00797653 0.179024 0.231877
Total time run: 10.160294
Total writes made: 697
Write size: 123
Object size: 123
Bandwidth (MB/sec): 0.00804696
Stddev Bandwidth: 0.000705981
Max bandwidth (MB/sec): 0.00879765
Min bandwidth (MB/sec): 0.00656891
Average IOPS: 68
Stddev IOPS: 6
Max IOPS: 75
Min IOPS: 56
Average Latency(s): 0.232101
Stddev Latency(s): 0.0742895
Max latency(s): 0.733679
Min latency(s): 0.080719
Cleaning up (deleting benchmark objects)
Removed 697 objects
Clean up completed and total clean up time :8.070982
총결산
이번 문서에서 "아빠 용돈으로 Ceph Cluster 할 수 있나요?"Cluster HAT를 주제로 다양한 Cluster HAT를 쓰러뜨린 결과를 정리했다.
결과적으로 자신이 하는 것보다 클라우드 서비스를 사는 것이 더 빠르고 더 싸다.그렇긴 하지만 언젠가는 상황이 역전될 때가 올 거라고 예상합니다.
예를 들어 올해 Ceph Day Berlin에서 Ambedded 씨가 발표한 슬라이드를 보면 ARM을 바탕으로 ceph cluster를 구축하면 1개의 호스트에 고밀도로 많은 디스크를 설치하는 단점(NUMA Memory Access의 병목, 1개의 호스트가 고장나면 많은 OSD가 멈추고 서비스의 영향이 크다는 등)에서 해방된다전력 소비량을 줄일 수 있기 때문에 합리적으로 보인다.
올해 AWS EC2 등에서도 ARM 아키텍처를 사용할 수 있게 되면서 다양한 ARM에 바람이 불고 있다.앞으로 ARM의 움직임도 놓칠 수 없다.
pi@p1:~ $ sudo rados mkpool mypool
pi@p1:~ $ sudo rados -p mypool bench 10 write -b 123
hints = 1
Maintaining 16 concurrent writes of 123 bytes to objects of size 123 for up to 10 seconds or 0 objects
Object prefix: benchmark_data_p1_13471
sec Cur ops started finished avg MB/s cur MB/s last lat(s) avg lat(s)
0 2 2 0 0 0 - 0
1 15 77 62 0.00708616 0.00727272 0.280682 0.232659
2 16 144 128 0.00740415 0.00774193 0.128686 0.231646
3 16 214 198 0.00766135 0.00821114 0.281453 0.231473
4 16 270 254 0.00738524 0.00656891 0.216874 0.24727
5 16 338 322 0.00749572 0.00797653 0.218095 0.243478
6 16 404 388 0.00753443 0.00774193 0.175373 0.24238
7 16 478 462 0.00769518 0.00868034 0.160927 0.239925
8 16 553 537 0.00782772 0.00879765 0.145773 0.235024
9 16 628 612 0.00793464 0.00879765 0.199223 0.231789
10 16 696 680 0.00793851 0.00797653 0.179024 0.231877
Total time run: 10.160294
Total writes made: 697
Write size: 123
Object size: 123
Bandwidth (MB/sec): 0.00804696
Stddev Bandwidth: 0.000705981
Max bandwidth (MB/sec): 0.00879765
Min bandwidth (MB/sec): 0.00656891
Average IOPS: 68
Stddev IOPS: 6
Max IOPS: 75
Min IOPS: 56
Average Latency(s): 0.232101
Stddev Latency(s): 0.0742895
Max latency(s): 0.733679
Min latency(s): 0.080719
Cleaning up (deleting benchmark objects)
Removed 697 objects
Clean up completed and total clean up time :8.070982
이번 문서에서 "아빠 용돈으로 Ceph Cluster 할 수 있나요?"Cluster HAT를 주제로 다양한 Cluster HAT를 쓰러뜨린 결과를 정리했다.
결과적으로 자신이 하는 것보다 클라우드 서비스를 사는 것이 더 빠르고 더 싸다.그렇긴 하지만 언젠가는 상황이 역전될 때가 올 거라고 예상합니다.
예를 들어 올해 Ceph Day Berlin에서 Ambedded 씨가 발표한 슬라이드를 보면 ARM을 바탕으로 ceph cluster를 구축하면 1개의 호스트에 고밀도로 많은 디스크를 설치하는 단점(NUMA Memory Access의 병목, 1개의 호스트가 고장나면 많은 OSD가 멈추고 서비스의 영향이 크다는 등)에서 해방된다전력 소비량을 줄일 수 있기 때문에 합리적으로 보인다.
올해 AWS EC2 등에서도 ARM 아키텍처를 사용할 수 있게 되면서 다양한 ARM에 바람이 불고 있다.앞으로 ARM의 움직임도 놓칠 수 없다.
Reference
이 문제에 관하여(아빠 용돈으로 만든 Ceph Server, Cluster HAT + Raspberry Pi Zero를 구축했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rev4t/items/cabddeee6d41afac0c2f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)