0
Библиотеки и фреймворки для    построения клаудов       Данилов Константин            Mirantis      koder-ua.blogspot.com
Виртуализация, какие ресурсы      используются напрямую• None            : QEMU• CPU             : KVM, VmWare, HyperV• Ho...
Тестирование
Изолированное исполнение
Использование ПО из другой среды
Виртуализация
Виртуальныесети              Управление              образами
Миграция           Балансировка
API•   addImage(path, …) => id•   setImage(id, root_passwd=“…”, …)•   startVM(config, …) => (id, ip, …)•   stopVM(id)•   …...
libvirt
<domain type=qemu>  <memory>219136</memory>  <vcpu>1</vcpu>  <devices>     <emulator>/usr/bin/qemu</emulator>     <disk ty...
vm.img + "<vm>..</vm>"                 +url = "provider://session"conn = libvirt.open(url)conn.createXML(cfg)             ...
virsh virsh             libvirt API                                     Hypervisor APIMy CloudYou Cloud                   ...
# virsh list# virsh create config_file.xml# virsh stop domain_id# virsh ANY_LIBVIRT_API
Local                   Internel                       networklibvirtbin              Linux kernel : iptables, routes, etc...
<network><ip address=192.168.122.1‘    netmask=255.255.255.0>  <dhcp>     <range start=192.168.122.40             end=192....
libguestfs
Client program   libguestfs             RPC          Service VM Disk        withimage        Linux
gfs = guestfs.GuestFS()gfs.add_drive_opts(disk_path, format=format)gfs.launch()gfs.mount ("/dev/sda1", "/")gfs.write(fname...
$ guestfish << _EOF_    add disk.img    run    mount /dev/vg_guest/lv_root /     write /etc/motd "Welcome, new users"_EOF_
shell + virsh + guestfish            =
Другие задачи•   Вспомогательные сетевые функции - scapy•   Балансировка нагрузки•   Мониторинг - graphit•   Автодеплой - ...
github.com/koder-ua/tiny_cloudлокальное облако на python в ~300 строк
Проблемы такого решения
Q &A
Облака
Clouds
Clouds
Clouds
Clouds
Upcoming SlideShare
Loading in...5
×

Clouds

504

Published on

add3 slides for

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
504
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Clouds"

  1. 1. Библиотеки и фреймворки для построения клаудов Данилов Константин Mirantis koder-ua.blogspot.com
  2. 2. Виртуализация, какие ресурсы используются напрямую• None : QEMU• CPU : KVM, VmWare, HyperV• Host HW Drivers : Xen pvirt, KVM + VirtIO, VmWare tools, ...• OS Kernel : LXC, Solaris Zones
  3. 3. Тестирование
  4. 4. Изолированное исполнение
  5. 5. Использование ПО из другой среды
  6. 6. Виртуализация
  7. 7. Виртуальныесети Управление образами
  8. 8. Миграция Балансировка
  9. 9. API• addImage(path, …) => id• setImage(id, root_passwd=“…”, …)• startVM(config, …) => (id, ip, …)• stopVM(id)• ……….
  10. 10. libvirt
  11. 11. <domain type=qemu> <memory>219136</memory> <vcpu>1</vcpu> <devices> <emulator>/usr/bin/qemu</emulator> <disk type=“block” device=“disk” > <source dev=“/tmp/img.bin” /> <target dev=“had” bus=“ide” /> </disk> </devices> </domain>
  12. 12. vm.img + "<vm>..</vm>" +url = "provider://session"conn = libvirt.open(url)conn.createXML(cfg) =
  13. 13. virsh virsh libvirt API Hypervisor APIMy CloudYou Cloud HypervisorThey Cloud VM VM VM VM VM
  14. 14. # virsh list# virsh create config_file.xml# virsh stop domain_id# virsh ANY_LIBVIRT_API
  15. 15. Local Internel networklibvirtbin Linux kernel : iptables, routes, etcdnsmasq DHCP Virtual network #1 Virtual network #2 DNS VM VM VM VMNetwork settings
  16. 16. <network><ip address=192.168.122.1‘ netmask=255.255.255.0> <dhcp> <range start=192.168.122.40 end=192.168.122.254 /> </dhcp></ip></network>
  17. 17. libguestfs
  18. 18. Client program libguestfs RPC Service VM Disk withimage Linux
  19. 19. gfs = guestfs.GuestFS()gfs.add_drive_opts(disk_path, format=format)gfs.launch()gfs.mount ("/dev/sda1", "/")gfs.write(fname, …)gfs.tar_out("/", ….)hiveXXX, virt-XXX, ……. Более 400 функций в API
  20. 20. $ guestfish << _EOF_ add disk.img run mount /dev/vg_guest/lv_root / write /etc/motd "Welcome, new users"_EOF_
  21. 21. shell + virsh + guestfish =
  22. 22. Другие задачи• Вспомогательные сетевые функции - scapy• Балансировка нагрузки• Мониторинг - graphit• Автодеплой - chef, fabric, …• ……
  23. 23. github.com/koder-ua/tiny_cloudлокальное облако на python в ~300 строк
  24. 24. Проблемы такого решения
  25. 25. Q &A
  26. 26. Облака
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×