Cloud
-
가상화 이미지 빌더 도구인 OzCloud 2015. 3. 24. 09:00
Oz는 OS 설치, OS 커스터마이징, ICICLE(메니페스트 생성) 등을 지원한다. OS별 지원 현황 Operating system Install Customize ICICLE RHEL/CentOS/ScientificLinux/OEL 7.x yes yes yes RHEL/CentOS/ScientificLinux/OEL 6.x yes yes yes RHEL/CentOS/ScientificLinux/OEL 5.x yes yes yes Fedora 7 - 21 yes yes yes OpenSUSE 10.3 - 13.x yes yes yes RHEL/CentOS/ScientificLinux 4.x yes no no RHEL/CentOS 3.x yes no no Debian 5, 6, 7 yes no no Fe..
-
OpenStack 이미지 만들기Cloud 2015. 3. 23. 09:00
오픈스택에서 VM을 만들려면 VM 생성할때 이용할 VM 이미지가 있어야 함. 지원하는 이미 형식- Raw기본 이미지 형식, KVM과 Xen 에서 지원함.dd 명령어를 이용해서 블럭 디바이스형태로 붙일 수도 있음. - qcow2(QEMU copy-on-write version 2)KVM에서 주로 사용하는 형식.raw형식보다 용량이 작음.스냅샷 지원. - AMI/AKI/ARI아마존 EC2에서 지원하는 형식AMI(Amazon Machine Image) : raw형식의 vm 이미지AKI (Amazon Kernel Image) : 하이퍼바이저가 이미지를 부팅하기위한 커널 파일.ARI (Amazon Ramdisk Image) : 부팅할때 마운트되는 램디스트(ramdisk) 파일. - UEC tarballUEC (U..
-
OpenStack이 지원하는 하이퍼바이저 종류Cloud 2015. 3. 20. 09:00
OpenStack에서는 Nova에서 사용할 하이퍼바이저를 직접 선택할 수 있고, 여러가지 하이퍼 바이저 종류가 있는데, 현재(2015. 3) 가장 많은 기능을 지원하는건 KVM이고, Live Migration 이 가능하다. Baremetal역시 이용이 가능한데 지금은 Ironic이라는 프로젝트 명으로 진행되고 있다. 각 하이퍼바이저별 지원 기능 Juno 기준 Feature XenServer/XCP KVM/libvirt on (x86) QEMU/libvirt (x86) LXC/libvirt Xen/Libvirt VMware Hyper-V Baremetal Ironic Docker PowerKVM Launch ✔ ✔ ✔ ✔ ✔ *(12) ✔ ✔ ✔ ✔ ✔ ✔ Reboot ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔*(1..
-
RabbitMQ RPC(Remote procedure call)Cloud 2015. 3. 18. 09:00
예제소스 rpc_server.py #!/usr/bin/env python import pika connection = pika.BlockingConnection(pika.ConnectionParameters( host='localhost')) channel = connection.channel() channel.queue_declare(queue='rpc_queue') def fib(n): if n == 0: return 0 elif n == 1: return 1 else: return fib(n-1) + fib(n-2) def on_request(ch, method, props, body): n = int(body) print " [.] fib(%s)" % (n,) response = fib(n) ch..
-
RabbitMQ 토픽Cloud 2015. 3. 17. 09:00
특정 주제에 대한 메세지를 주고받는 기능. topic exchange로 보내지는 메세지는 반드시 routing_key를 가지고 있어야함. routing_key 크기는 255 바이트. 바인딩 키에 특수문자 사용가능. - * 하나의 단어를 의미 - # 없거나 하나이상의 단어를 의미 예제소스 emit_log_topic.py #!/usr/bin/env python import pika import sys connection = pika.BlockingConnection(pika.ConnectionParameters( host='localhost')) channel = connection.channel() channel.exchange_declare(exchange='topic_logs', type='topic'..
-
RabbitMQ 라우팅Cloud 2015. 3. 16. 09:00
원하는 메세지만 선택해서 받기 위한 기능. exchange와 큐를 바인딩하기위해 routing_key 매개변수를 이용함. 예제소스 emit_log_direct.py #!/usr/bin/env python import pika import sys connection = pika.BlockingConnection(pika.ConnectionParameters( host='localhost')) channel = connection.channel() channel.exchange_declare(exchange='direct_logs', type='direct') severity = sys.argv[1] if len(sys.argv) > 1 else 'info' message = ' '.join(sys.argv..
-
RabbitMQ를 이용한 메세지 발행/구독 모델Cloud 2015. 3. 13. 09:00
워크큐에서는 하나의 메세지가 하나의 워커에게만 전달되지만 발행/구독 모델에서는 하나의 메세지가 모든 구독자에게 전달이 되는 구조. rabbitmq에서는 메세지를 바로 큐로 보내지 않고 exchange에 먼저 보내는데, 이 exchange 타입을 fanout으로 설정 하면 됨. 예제 emit_log.py #!/usr/bin/env python import pika import sys connection = pika.BlockingConnection(pika.ConnectionParameters( host='localhost')) channel = connection.channel() channel.exchange_declare(exchange='logs', type='fanout') message = ' ..
-
RabbitMQ 작업 큐로 이용하기Cloud 2015. 3. 12. 09:00
메세지를 받아간 워커가 작업중에 죽더라도 해당 메세지는 큐에 남아서 다른 워커에게 전달할 수 있게 하기위해서 RabbitMQ는 acknowledgments를 지원함. ack(nowledgments)는 워커가 메세지를 받아가서 처리했다는걸 RabbitMQ에게 알려서 RabbitMQ가 그 메세지를 지울 수 있게함. ack없이 워커가 죽으면 RabbitMQ는 그 메세지가 정상적으로 처리되지 않았다고 판단해서 다른 워커에게 메세지를 전달. 타임아웃은 없음. RabbitMQ 서버가 죽더라도 큐안의 메세지를 보존하기위해서는 durable 옵션을 True로 설정해서 큐를 생성함. 라운드로빈방식으로 메세지를 보내서 특정 워커에 작업이 쌓이는 것을 방지하기위해 basic_qos 옵션을 줄 수 있음. 메세지 흐름 구조 예..