Clouds

576 views
541 views

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
576
On SlideShare
0
From Embeds
0
Number of Embeds
262
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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. Облака

×