일반적으로 우리가 언급하는 클라우드 컴퓨팅에는 SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service)라는 세 가지 유형이 있습니다. 클라우드 개념이 처음 나왔을 때 사람들은 혼란스럽고 불분명하다고 말했습니다. 이제 클라우드 기술은 사람들의 마음 속에 깊이 뿌리박혀 있습니다. 예를 들어 매일 사용하는 Gmail은 Google Cloud에 있습니다. . 이 세 가지 클라우드를 더 잘 이해하기 위해 Google을 예로 들 수 있습니다. 이 회사는 세 가지 형태의 클라우드 서비스를 제공합니다. 먼저 Google Gmail/Docs/Gtalk/Maps와 같은 SaaS 앱을 살펴보세요. Cloud. 따라서 일반 사용자에게 "서비스로서의 소프트웨어"를 제공합니다. Google은 개발자가 Python, Java 및 기타 언어와 그들이 제공하는 API를 사용하여 소프트웨어 및 서비스를 개발할 수 있도록 하는 AppEngine도 제공합니다. 개발자에게 "서비스로서의 플랫폼"을 제공합니다. Google 자체는 내부 직원에게 "서비스로서의 인프라"를 제공하기 위해 GFS, BigTable 및 MaPReduce를 기반으로 하는 거대한 기본 클라우드 인프라를 구축했습니다. .
OpenNebula는 관리자가 데이터 센터에서 많은 수의 가상 머신을 균일하게 배포, 생성, 할당 및 관리할 수 있도록 지원하는 오픈 소스 클라우드 컴퓨팅 기본 관리 도구 세트입니다. 기업 데이터 센터는 이 도구 세트를 사용하여 자체 프라이빗 클라우드를 구축할 수 있습니다. 내부 IaaS 서비스 제공, 유사한 오픈 소스 제품에는 Eucalyptus, openQRM 등이 포함됩니다. CentOS 5.5 시스템이 탑재된 VPSee의 두 서버에서 다음 설치 프로세스가 완료됩니다. 한 서버는 OpenNubula 프런트 엔드(node00)로 사용되고 다른 서버는 노드(node01)로 사용되어 최소한의 "클라우드"를 구축합니다. 이 클라우드를 확장하려면 점진적으로 노드(node02, node03, ...)를 추가하기만 하면 됩니다.
프런트엔드(Front-End) 설치 및 구성
CentOS Karan 소스 추가:
# CD /etc/yum.repos.d
# wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
# 냠 업데이트
OpenNebula에 필요한 소프트웨어 패키지와 OpenNebula 소스 코드를 컴파일하는 데 필요한 도구를 설치합니다.
# yum install gcc gcc-c++ make openssl-devel flex bison
# yum install ruby ruby-devel ruby-docs ruby-ri ruby-irb ruby-rdoc
# 냠 설치 루비젬
# gem install nokogiri rake xmlparser
# 냠 설치 스콘
# 냠 설치 xmlrpc-c xmlrpc-c-devel
CentOS와 함께 제공되는 sqlite 버전이 작동하지 않습니다. sqlite 3.6.17 버전을 다운로드하고 컴파일해야 합니다.
# wget http://www.sqlite.org/sqlite-amalgamation-3.6.17.tar.gz
# tar xvzf sqlite-amalgamation-3.6.17.tar.gz
# CD sqlite-3.6.17/
# ./configure make install;
opennebula 2.0.1 소스 패키지를 다운로드하고 컴파일한 후 압축을 풀고 컴파일하고 설치합니다.
# tar zxvf opennebula-2.0.1.tar.gz
# CD 오픈네뷸라-2.0.1
#scons
# ./install.sh -d /srv/cloud/one
# ls /srv/cloud/one/
bin 등에는 lib 공유 var가 포함됩니다.
OpenNebula를 시작하기 전에 ONE_AUTH 환경 변수를 구성해야 합니다. 이 환경 변수는 $HOME/.one/one_auth 파일에서 읽혀지므로 먼저 one_auth 파일을 생성한 다음 하나(OpenNebula 서비스 프로그램)를 시작해야 합니다.
# CD /루트/
# mkdir .one
# CD .one/
# 고양이 "oneadmin:passWord" > one_auth
#한번시작
OpenNebula는 KVM, Xen 및 VMware의 세 가지 가상화 기술을 지원합니다. 또한 OpenNebula에게 사용할 기술을 지정하고 구성을 적용하려면 하나를 다시 시작해야 합니다.
# vi /etc/one/oned.conf
...
IM_MAD = [
이름 = "im_xen",
실행 파일 = "one_im_ssh",
인수 = "xen" ]
VM_MAD = [
이름 = "vmm_xen",
실행 파일 = "one_vmm_ssh",
인수 = "xen",
기본값 = "vmm_ssh/vmm_ssh_xen.conf",
유형 = "xen"]
...
# 원스톱
#한번시작
노드(컴퓨팅 노드) 설치 및 구성
각 노드에 Xen 또는 KVM 가상 환경을 설치해야 합니다. 자세한 내용은 CentOS에 Xen 설치 및 구성 및 CentOS에 KVM 설치 및 구성을 참조하세요.
# 냠 루비 설치
SSH 키 교환
OpenNebula Front와 Nodes 간의 통신은 SSH를 통해 이루어지므로 프런트가 노드에서 스크립트를 실행하거나 이미지를 복제할 때 비밀번호를 입력하지 않도록 프런트와 노드 간에 SSH 비밀번호 없는 로그인을 설정해야 합니다. 먼저 프런트와 노드에서 sshd를 구성합니다. :
# vi /etc/ssh/sshd_config
RSA 인증 예
Pubkey인증 예
# /etc/init.d/ssh 재시작
전면(node00)에 키를 생성하고 이를 노드(node01)에 복사합니다.
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub node01
한 노드(node01)에 키를 생성하고 이를 전면(node00)에 복사합니다.
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub node01
원호스트
전면에서 비밀번호 없는 SSH를 통해 각 노드와 통신할 수 있게 되면 전면에서 onehost create 명령을 사용하여 노드를 하나씩 조인하고 onehost list를 사용하여 생성이 성공했는지 확인할 수 있습니다.
# onehost는 node01 im_xen vmm_xen tm_ssh를 생성합니다.
# 원호스트 목록
ID 이름 클러스터 RVM TCPU FCPU ACPU TMEM FMEM STAT
1 node01 기본값 0 400 400 400 3.8G 383M 켜짐
onehost create를 실행할 때 오류가 보고되면 oned.log 로그를 확인하고 sudo라는 단어를 찾으세요. 죄송합니다. sudo를 실행하려면 tty가 있어야 합니다. 그 이유는 OpenNebula가 명령을 실행하려면 원격 ssh/sudo가 필요하기 때문입니다. requiretty 옵션은 기본적으로 켜져 있습니다. ssh를 실행하려면 tty가 필요하므로 원격 sudo를 사용하면 오류가 발생합니다.
# onehost는 node01 im_xen vmm_xen tm_ssh를 생성합니다.
# 꼬리 /var/log/one/oned.log
Tue Feb 22 11:08:58 2011 [InM][I]: 명령 실행 실패: 'if [ -x "/var/tmp/one/im/run_probes" ] then /var/tmp/one/im/run_probes xen 172.16.39.111; 그렇지 않으면 fi'를 종료합니다.
2011년 2월 22일 화요일 11:08:58 [InM][I]: STDERR이 이어집니다.
Tue Feb 22 11:08:58 2011 [InM][I]: sudo: 죄송합니다. sudo를 실행하려면 tty가 있어야 합니다.
Tue Feb 22 11:08:58 2011 [InM][I]: xen.rb 실행 오류
해결책은 requiretty 행을 끄는 것(주석 처리)입니다.
# chmod 600 /etc/sudoers
# vi /etc/sudoers
#기본값 필수
VPSee의 두 서버는 HTTP 프록시를 사용하여 인터넷에 액세스하기 때문에 OpenNebula는 시스템의 http_proxy 환경 변수를 읽고 sched.log 로그에서 HTTP 응답 오류를 발견했습니다. 이때 http_proxy를 닫아야 합니다.
# 고양이 /var/log/one/sched.log
2011년 2월 22일 화요일 14:27:39 [HOST][E]: 예외 발생: XML을 서버로 전송하고 XML 응답을 다시 받을 수 없습니다: 504.
2월 22일 화요일 14:27:39 2011 [POOL][E]: ONE에서 풀 정보를 검색할 수 없습니다.
# http_proxy 설정을 해제합니다.
가상 네트워크 구성 파일을 생성 및 편집한 후 OpenNebula 가상 네트워크를 생성합니다.
# vi small_network.net
이름 = "소규모 네트워크"
유형=고정
브리지 = br0
임대 = [ip="192.168.0.5"]
임대 = [IP="192.168.0.6"]
임대 = [IP="192.168.0.7"]
# onevnet은 small_network.net을 생성합니다.
# onevnet 목록
ID 사용자 이름 유형 브리지 P #LEASES
0 oneadmin 소규모 네트워크 고정 br0 N 0
오네브엠
가상 머신의 시작 구성 파일을 생성하고 편집합니다. 여기서 centos.5.5.x86.img는 http://stacklet.com/ (유료)에서 다운로드하거나 Xen 도구를 사용하여 직접 생성할 수 있습니다.
# wget http://stacklet.com/sites/default/files/centos/
centos.5.5.x86.img.tar.bz2
# tar jxvf centos.5.5.x86.img.tar.bz2
# mv centos.5.5.x86.img /srv/cloud/one/var/images/
# vi centos.one
이름 = 센토스
CPU = 1
메모리 = 256
디스크 = [
소스 = "/srv/cloud/one/var/images/centos.5.5.x86.img
대상 = "sda1",
클론 = "예",
읽기 전용 = "아니요" ]
NIC = [ MAC = "00:16:3E:00:02:64", 브리지 = xenbr0 ]
OS = [ 부트로더 = "/usr/bin/pygrub" ]
onevm create 명령을 사용하여 위의 VM 구성 파일을 시작하면 node01에 가상 머신이 생성됩니다. onevm list를 사용하여 확인하면 생성이 완료된 후 생성 프로세스가 진행 중임을 나타내는 prol 상태가 표시됩니다. , 상태가 실행됨으로 변경됩니다.
# onevm은 centos.one을 생성합니다.
# onevm 목록
ID 사용자 이름 통계 CPU 메모리 호스트 이름 시간
1 oneadmin centos prol 0 0K node01 00 00:09:09
# onevm 목록
ID 사용자 이름 통계 CPU 메모리 호스트 이름 시간
1 oneadmin centos 실행 0 0K node01 00 00:22:17
이런 방식으로 node00(전면)과 node01(노드) 두 서버에 최소 클라우드를 배포하고 node01에서 Xen 기반 가상 머신 인스턴스를 실행했습니다.
기사 출처: http://www.vpsee.com/2011/02/install-opennebula-on-centos/