웹사이트 검색

CentOS 7에서 CephFS를 마운트하는 방법


이 페이지에서

  1. 1단계 - Client2 노드 구성
  2. 2단계 - Client2 노드에 Ceph Common Utilities 설치
  3. 3단계 - Ceph-admin 노드 구성
  4. 4단계 - Ceph 메타데이터 서버 생성
  5. 5단계 - 커널 드라이버로 CephFS 마운트
  6. 6단계 - CephFS를 퓨즈로 마운트\n
  7. 7단계 - fstab을 사용하여 CephFS 마운트\n
  8. 참조

Ceph는 오픈 소스 스토리지 플랫폼으로 고성능, 안정성 및 확장성을 제공합니다. 단일 장애 지점 없이 개체, 블록 및 파일 수준 스토리지에 대한 인터페이스를 제공하는 무료 분산 스토리지 시스템입니다.

Ceph 튜토리얼 시리즈의 세 번째 파트입니다. 두 번째 부분에서는 CentOS 7에서 Ceph를 블록 장치로 사용하는 방법을 보여주는 가이드입니다. 세 번째 부분에서는 Ceph를 클라이언트로 CentOS 7에서 파일 시스템으로 마운트하는 방법을 보여 드리겠습니다.

전제 조건

  • Ceph 클러스터 - Ceph-admin 노드 1개, Moinitor 노드(ceph-mon) 1개, Ceph-osd 노드 3개(1부 참조).
  • Client2 - CentOS 7 서버(2부 참조).
  • 루트 권한\n

1단계 - Client2 노드 구성

이 첫 번째 단계에서는 클라이언트의 기본 설치를 만듭니다. 이것은 다른 클러스터 노드에서 사용한 것과 동일한 절차입니다. 상자에 cephuser라는 이름의 새 사용자를 생성하고, ntpdate와 시간을 동기화하고, cephuser에 대해 암호가 없는 sudo를 구성하는 등의 작업을 수행합니다. 시작하겠습니다...

root 사용자로 SSH를 사용하여 client2 노드에 연결합니다.

ssh 

루트 액세스 권한으로 서버에 로그인했으므로 이제 새 cephuser를 만들 수 있습니다.

useradd -m -d /home/cephuser cephuser
passwd cephuser
TYPE YOUR NEW PASSWORD

새 사용자가 생성된 후 sudoers 디렉터리에 새 구성 파일을 생성하여 사용자에 대해 암호 없는 sudo를 활성화합니다.

echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chmod 0440 /etc/sudoers.d/cephuser

다음으로 NTP, ntpdate 명령줄 도구 및 open-vm 도구를 설치합니다. 그런 다음 시스템 시간을 ntpdate로 업데이트하고 동기화합니다.

yum install -y open-vm-tools
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service

SELinux를 비활성화하고 호스트 파일을 편집합니다.

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
vim /etc/hosts

아래에 호스트 구성을 붙여넣으십시오.

10.0.15.10        ceph-admin
10.0.15.11        mon1
10.0.15.21        osd1
10.0.15.22        osd2
10.0.15.23        osd3
10.0.15.15        client
10.0.15.16        client2

호스트 파일을 저장하고 편집기를 종료합니다. 이제 ceph-admin 노드를 ping하여 연결 및 호스트 이름 설정을 테스트해 보십시오.

ping -c 3 ceph-admin

결과로 ceph-admin 노드 IP 주소가 표시되어야 합니다.

2단계 - Client2 노드에 Ceph Common Utilities 설치

ceph-common 패키지는 Ceph 리포지토리에서 설치할 수 있습니다. 여기에는 Ceph Storage Cluster를 마운트하고 상호 작용하는 Ceph 유틸리티가 포함되어 있습니다.

ceph-common 패키지 설치를 진행하기 전에 epel-repository와 Ceph 저장소를 추가해야 합니다.

sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm

시스템을 업데이트하고 Ceph 공통 유틸리티를 설치합니다.

sudo yum -y update
sudo yum -y install ceph-common

다음으로 ceph-admin 노드에 구성을 추가해야 합니다.

3단계 - Ceph-admin 노드 구성

이 단계에서는 admin에서 ssh 키(암호 없이)를 사용하여 client2 노드에 연결할 수 있도록 클러스터를 구성합니다.

루트로 ceph-admin 노드에 연결한 다음 su를 사용하여 cephuser에 로그인합니다.

ssh 
su - cephuser

ssh 구성 파일을 편집하고 새 client2 구성 섹션을 정의하십시오.

vim ~/.ssh/config

파일 끝에 아래 구성을 붙여넣습니다.

Host client2
    Hostname client2
    User cephuser

그런 다음 클라이언트 노드에 대한 호스트 구성 줄을 ceph-admin 노드의 /etc/hosts 파일에 추가합니다.

sudo vim /etc/hosts

파일 끝에 아래 호스트 구성을 붙여넣습니다.

10.0.15.16      client2

호스트 파일을 저장하고 편집기를 종료합니다.

이제 ceph-admin 노드의 ssh 키를 client2 노드에 추가합니다.

ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
TYPE THE client2 PASSWORD

ceph-admin 키가 추가되었습니다. 이제 ceph-admin 노드에서 암호 없이 client2 노드에 액세스할 수 있습니다.

ssh client2

4단계 - Ceph 메타데이터 서버 생성

CephFS를 실행하고 마운트하려면 ceph 메타데이터 서버(Ceph MDS)가 필요합니다. Ceph MDS가 OSD 노드에서 실행 중입니다. ceph-admin 노드에서 ceph-deploy 명령을 사용하여 Ceph MDS를 OSD 노드에 설치할 수 있습니다.

ceph-admin 노드에 로그인하고 cephuser가 됩니다.

ssh 
su - cephuser

클러스터 디렉터리로 이동하고 ceph-deploy 명령어를 실행하여 새 ceph 메타데이터 서버(Ceph MDS)를 만듭니다. osd1 노드를 메타데이터 서버로 사용하겠습니다.

cd cluster/
ceph-deploy mds create osd1

osd1 노드에 MDS 서버를 생성한 후 ssh로 노드에 연결해야 합니다.

ssh osd1

다음으로 MDS 서버에 대한 새 풀을 생성합니다. 최소한 cephfs_data 및 cephfs_metadata라는 2개의 풀이 필요합니다.

osd1 노드에 새 풀을 만듭니다.

ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128

새 풀이 준비되었습니다. 이제 명명된 풀인 cephfs_data 및 cephfs_metadata를 사용하여 새 파일 시스템을 만들 수 있습니다.

ceph fs new cephfs cephfs_metadata cephfs_data

cephfs=파일 시스템 이름.

오류 없이 이 단계를 마쳤으면 아래 명령으로 MDS 서버를 확인합니다.

MDS 서버 목록 확인:

ceph fs ls

이제 파일 시스템 이름이 cephfs, 메타데이터 풀이 cephfs_metadata, 데이터 풀이 cephfs_data임을 확인할 수 있습니다.

MDS 상태 표시:

ceph mds stat

계속 진행하기 전에 MDS가 활성화되어 있는지 확인하십시오.

5단계 - 커널 드라이버로 CephFS 마운트

Ceph MDS 서버가 osd1 노드에 생성되었습니다. 이제 CephFS를 사용할 수 있습니다. 이 단계에서는 mount 명령을 사용하여 파일 시스템으로 client2 노드에 CephFS를 마운트합니다.

다음 단계를 시작하기 전에 client2 노드의 ceph 저장소에서 ceph-fuse를 설치해야 합니다.

sudo yum -y install ceph-fuse

설치가 완료되면 사용자 키를 복사합니다. 기본 구성에서는 cephx 인증이 사용 설정되어 있습니다. 기본 사용자는 admin입니다.

scp 명령을 사용하여 MDS 서버 노드 osd1에서 client2 노드로 키를 복사한 다음 키의 권한을 변경합니다.

ssh  'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.key

다음으로 새 cephfs 디렉터리를 만들고 CephFS를 해당 디렉터리에 마운트합니다.

sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.key

메모:

기본 사용자 이름=admin
secretfile=MDS 노드 osd1의 ceph.key

목록에 마운트된 ceph 유형의 새 파일 시스템이 표시됩니다.

sudo df -hT

파일 시스템을 마운트 해제하려면 umount 명령 유틸리티를 사용하십시오.

umount /mnt/cephfs

6단계 - CephFS를 퓨즈로 마운트

CephFS를 파일 시스템으로 성공적으로 마운트한 후 CephFS를 Fuse(USErspace의 파일 시스템)로 마운트합니다. 이 설정을 위해 구성 파일 ceph.conf와 모니터링 노드 mon1의 키를 복사해야 합니다.

client2 노드에 새 ceph 디렉터리를 만들고 구성 파일과 키를 복사합니다.

sudo mkdir -p /etc/ceph/
sudo scp :/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring

파일의 권한을 변경합니다.

sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

다음으로 새 퓨즈 디렉토리를 만들고 CephFS를 Fuse로 /mnt/fuse 디렉토리에 마운트합니다.

sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuse

오류가 없는지 확인하고 CephFS가 마운트되었는지 확인하십시오.

sudo df -hT

CephFS Fuse를 마운트 해제하려면 kill 명령을 사용하십시오.

sudo ps -aux | grep ceph-fuse
kill -2 PID

7단계 - fstab을 사용하여 CephFS 마운트

이 단계에서는 fstab을 사용하여 CephFS를 영구적으로 마운트합니다. /etc/fstab을 편집하고 mount 명령을 사용하여 커널 드라이버로 CephFS를 마운트하기 위한 구성을 추가합니다.

fstab 파일을 수정합니다.

sudo vim /etc/fstab

파일 끝에 아래 구성을 붙여넣습니다.

mon1:6789:/     /mnt/cephfs     ceph        name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime    0   0

파일을 저장하고 vim을 종료합니다.

mount -a 명령을 사용하여 fstab에서 모든 디스크를 마운트한 다음 사용 가능한 모든 디스크를 나열합니다.

sudo mount -a
sudo df -hT

마지막으로 시스템을 재부팅하고 사용 가능한 디스크를 확인하여 구성이 재부팅해도 안전한지 확인합니다.

reboot
sudo df -hT

CephFS가 fstab으로 자동으로 마운트된 것을 볼 수 있습니다.

참조

  • https://access.redhat.com/documentation/en/red-hat-ceph-storage/