SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
+




    Design of general bare_metal
    proxy compute node
            Mikyung Kang (mkkang@isi.edu)
              Dong-In Kang (dkang@isi.edu)
1                              May 20, 2011
TODO [1] nova.conf
+                                                                                               2


       Current Version                                           Next Version
    Proxy Compute Node                                       Proxy Compute Node


       LibvirtConnection                                         LibvirtConnection
        (libvirt_conn.py)       proxy_baremetal                   (libvirt_conn.py)
    --connection_type=libvirt   specific model                --connection_type=libvirt
                                                              --connection_type=gpu
    --connection_type=gpu
                                                                ProxyConnection
                                                              (proxy_baremetal.py)
                                                      1      --connection_type=baremetal
    --connection_type=tilera                                                              gPXE.py?

       TileraConnection                      TileraConnection         …..      ArmConnection
           (tilera.py)                           (tilera.py)                      (arm.py)
                                                                         --baremetal_driver=arm
                                                             HeckleConnection
                            2    --baremetal_driver=tilera
                                                                (heckle.py)
                                                       --baremetal_driver=heckle
                                                                             Specific arch. or
  1.  Changing --connection_type: tilera          baremetal             Specific provisioning tool
  2.  Adding –baremetal_driver option in nova.conf: tilera/arm/heckle/…
TODO [2] proxy_baremetal.py overview
+                                                                                                3


               Next Version
           Proxy Compute Node

      --connection_type=baremetal
                                             def create_domain(..):
              ProxyConnection                      …
            (proxy_baremetal.py)                   load bare_metal as –baremetal_driver in nova.conf
                                                   baremetal_id = bare_metal.get_idle_node()
                                                   new_dom = {
    class ProxyConnection                                ’baremetal_type': bare_metal,
         def _get_connection(..):                        ’baremetal_id': baremetal_id,
              // _conn <- baremetal_doms                  'name': xml_dict['name'],
         def destroy(..):                                'mac_address': xml_dict['mac_address'],
              // _conn.destroy_domain(..)                 'ip_address': xml_dict['ip_address'],
              // db.instance_set_state(..)                'dhcp_server': xml_dict['dhcp_server'],
                                                          'image_id': xml_dict['image_id'],
         def reboot(..):
                                                          'kernel_id': xml_dict['kernel_id'],
              // _conn.reboot_domain(..)                  'ramdisk_id': xml_dict['ramdisk_id'],
              // db.instance_set_state(..)                 'status': power_state.NOSTATE}
         def spawn(..):                            self.domains.append(new_dom)
              // inject key into image             self.change_domain_state(..)
              // _conn.create_domain(..)           bare_metal.set_fs(..)
              // db.instance_set_state(..)         bare_metal.activate_node(..)
         def get_console_output(..):               …
              // console_log
TODO [3] proxy_baremetal.py: domain management
+                                                                                                                   4


                                 •  bare_metal.get_idle_node() is needed
  baremetal_id                         - ID format is different system by system
                                       - ID can be board_number or string name
                                       - “baremetal_type” and “baremetal_id”
                                       - return value: baremetal_id
                                 •  bare_metal.get_status() & set_status() are needed
                                       - Status can be number(0/1) or string (None/ALLOCATED)
                                       - argument and return value: 0/1 (conversion)
  Tilera: <board_id> 0 ~ 9




                                                                                   Status field is added in __init__

 [{'status': 0, 'kernel_id': '1896115634’, 'ramdisk_id': '', 'image_id': '1552326678', 'ip_address': '10.9.1.45’,
 'board_id': 2, 'name': 'instance-00000046', 'vcpus': 1L, 'mac_address': '02:16:3e:1f:84:69', 'dhcp_server':
 '10.9.1.1'}]
                                                   ‘baremetal_type’:’tilera’, ‘baremetal_id’:2
  Heckle: <Name> bb01~
TODO [4] proxy_baremetal.py: get_image & set_image
+                                                                                                                   5


                                 •  bare_metal.get_image(baremetal_id) is needed
         set_fs                        - Case#1: passed image by euca-run-instances (every time)
                                              - no needed
                                       - Case#2: fake bare metal image / no passed image (manual)
                                              - Actual images should be passed
                                              - After getting images (path) from bare_metal,
                                                vmlinux/initrd/disk should be copied to basepath/.
                                               Then key should be injected to real disk image.
                                 •  bare_metal.set_image(baremetal_id) is needed
                                       - In case that specific directory is used for images (/tftpboot/),
                                         it should pass the key injected image into specific directory

   Tilera: bpath/root -> /tftpboot/fs_x.tar.gz           /tftpboot
 [{'status': 0, 'kernel_id': '1896115634’, 'ramdisk_id': '', 'image_id': '1552326678', 'ip_address': '10.9.1.45’,
 'board_id': 2, 'name': 'instance-00000046', 'vcpus': 1L, 'mac_address': '02:16:3e:1f:84:69', 'dhcp_server':
 '10.9.1.1'}]
                                                                                             /bootconfig
      Heckle: <Image>                                                                        /node
                                                                                             /image
                                                                                             /hardware
                                                                                             /user
                                                                                             /powercontroller …
TODO [5] proxy_baremetal.py: activate_node
+                                                                                             6

                         •  bare_metal.activate_node(baremetal_id, ip_addr, mac_addr)
 Activate_node                 - In case of Tilera, the first/second boot use different vmlinux.
                                 In case of Heckle, script is used for setting activation
                                     -> bare_metal.boot_set() (Tilera:mboot <-> gPXE script)
                               - Tilera uses ePDU management script <-> IPMI
                                     -> bare_metal.power_mgr()
                                     -> bare_metal.check_activated()
                               - Some settings for network and services are needed
                                     -> bare_metal.network_set()
                         •  bare_metal.deactivate_node(baremetal_id) is needed [destroy]
  Tilera: /tftpboot/vmalinux_x_1 and _2
   Heckle: <vmlinux>
TODO [6] proxy_baremetal.py: get_console_output
+                                                                                  7


                   •  bare_metal.get_console_output(instance) is needed
  console_output         - In case of Tilera, /proc/kmsg output is saved offline
                           and then reused whenever it is needed
                           b/c MDE 2.0 doesn’t support dmesg
                         - Most bare metal machines can get dmesg output
                           and then save before running OpenStack


       Tilera:
TODO [7] proxy_baremetal.py: update_available_resource()
+                                                                                                 8

                          •  Needed host information
 update_resource                - get_vcpu_total()               - get_memory_mb_total()
                                - get_local_gb_total()           - get_vcpu_used()
                                - get_memory_mb_used()           - get_local_gb_used()
                                - get_hypervisor_type()          - get_hypervisor_version()
                                - get_cpu_info()
                          •  bare_metal.get_hw_info(field) is needed
                                - In case of Tilera, all information is saved into tilera_boards file,
                                  and each field is loaded from file when running OpenStack,
                                  and then each specific field is retrieved through “field” arg.
                                - vcpu: # of bare_metal node, it should be changed acct. #(run)
                                - total/used: each information of each node
                                - Assumption: one proxy bare_metal for homogeneous machines
  Tilera: tilera_boards




  Heckle: Properties
Overview
+                                        Should be separated into 2
                                           or 3 files and each func.
                                                                                                        9

                                         should be added/modified!

--connection_type=baremetal


proxy_baremetal.py                     baremetal_dom.py                       arch.py (ex. tilera.py)
__init__                               __init__                               class _nodes
                                                                                 def set_status()
Init_host()                            read_domain_from_file()
                                                                                 def check_idle_node()
_get_connection()                      reboot_domain()                           def get_idle_node()
                                                                                 def find_ip_w_id()
destroy()                              destroy_domain()
                                                                                 def free_node()
reboot()                               create_domain()                           def deactivate_node()
                                                                                 def activate_node()
spawn()                                change_domain_state()

get_console_output()                   store_domain()                             def get_hw_info()
                                                                                  def get_image()
update_available_resource()            find_domain()                              def set_image()
…                                      list_domains()                             def get_console_output()
                                                                                  def check_activated()
                                       get_domain_info()
                                                                              …
                                       …

                              --baremetal_driver=arch or tool (tilera/arm/heckle/…)

Más contenido relacionado

La actualidad más candente

DSL - Domain Specific Languages, Chapter 4, Internal DSL
DSL - Domain Specific Languages,  Chapter 4, Internal DSLDSL - Domain Specific Languages,  Chapter 4, Internal DSL
DSL - Domain Specific Languages, Chapter 4, Internal DSLHiro Yoshioka
 
What's New In Apache Lenya 1.4
What's New In Apache Lenya 1.4What's New In Apache Lenya 1.4
What's New In Apache Lenya 1.4nobby
 
Symfony 2.0
Symfony 2.0Symfony 2.0
Symfony 2.0GrUSP
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf Conference
 
Building High Perf Web Apps - IE8 Firestarter
Building High Perf Web Apps - IE8 FirestarterBuilding High Perf Web Apps - IE8 Firestarter
Building High Perf Web Apps - IE8 FirestarterMithun T. Dhar
 
Java e i database: da JDBC a JPA
Java e i database: da JDBC a JPAJava e i database: da JDBC a JPA
Java e i database: da JDBC a JPAbenfante
 
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)Ryan Mauger
 
Php unit the-mostunknownparts
Php unit the-mostunknownpartsPhp unit the-mostunknownparts
Php unit the-mostunknownpartsBastian Feder
 
How to Design a Great API (using flask) [ploneconf2017]
How to Design a Great API (using flask) [ploneconf2017]How to Design a Great API (using flask) [ploneconf2017]
How to Design a Great API (using flask) [ploneconf2017]Devon Bernard
 
The Beauty and the Beast
The Beauty and the BeastThe Beauty and the Beast
The Beauty and the BeastBastian Feder
 
Lean React - Patterns for High Performance [ploneconf2017]
Lean React - Patterns for High Performance [ploneconf2017]Lean React - Patterns for High Performance [ploneconf2017]
Lean React - Patterns for High Performance [ploneconf2017]Devon Bernard
 
groovy databases
groovy databasesgroovy databases
groovy databasesPaul King
 
G*ワークショップ in 仙台 Grails(とことん)入門
G*ワークショップ in 仙台 Grails(とことん)入門G*ワークショップ in 仙台 Grails(とことん)入門
G*ワークショップ in 仙台 Grails(とことん)入門Tsuyoshi Yamamoto
 
The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09Bastian Feder
 
concurrency with GPars
concurrency with GParsconcurrency with GPars
concurrency with GParsPaul King
 
Building a Pluggable Plugin
Building a Pluggable PluginBuilding a Pluggable Plugin
Building a Pluggable PluginBrandon Dove
 
Fnt Software Solutions Pvt Ltd Placement Papers - PHP Technology
Fnt Software Solutions Pvt Ltd Placement Papers - PHP TechnologyFnt Software Solutions Pvt Ltd Placement Papers - PHP Technology
Fnt Software Solutions Pvt Ltd Placement Papers - PHP Technologyfntsofttech
 

La actualidad más candente (20)

DSL - Domain Specific Languages, Chapter 4, Internal DSL
DSL - Domain Specific Languages,  Chapter 4, Internal DSLDSL - Domain Specific Languages,  Chapter 4, Internal DSL
DSL - Domain Specific Languages, Chapter 4, Internal DSL
 
What's New In Apache Lenya 1.4
What's New In Apache Lenya 1.4What's New In Apache Lenya 1.4
What's New In Apache Lenya 1.4
 
Symfony 2.0
Symfony 2.0Symfony 2.0
Symfony 2.0
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
 
Building High Perf Web Apps - IE8 Firestarter
Building High Perf Web Apps - IE8 FirestarterBuilding High Perf Web Apps - IE8 Firestarter
Building High Perf Web Apps - IE8 Firestarter
 
Merb
MerbMerb
Merb
 
DataMapper
DataMapperDataMapper
DataMapper
 
Java e i database: da JDBC a JPA
Java e i database: da JDBC a JPAJava e i database: da JDBC a JPA
Java e i database: da JDBC a JPA
 
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
 
Php unit the-mostunknownparts
Php unit the-mostunknownpartsPhp unit the-mostunknownparts
Php unit the-mostunknownparts
 
How to Design a Great API (using flask) [ploneconf2017]
How to Design a Great API (using flask) [ploneconf2017]How to Design a Great API (using flask) [ploneconf2017]
How to Design a Great API (using flask) [ploneconf2017]
 
The Beauty and the Beast
The Beauty and the BeastThe Beauty and the Beast
The Beauty and the Beast
 
Lean React - Patterns for High Performance [ploneconf2017]
Lean React - Patterns for High Performance [ploneconf2017]Lean React - Patterns for High Performance [ploneconf2017]
Lean React - Patterns for High Performance [ploneconf2017]
 
groovy databases
groovy databasesgroovy databases
groovy databases
 
G*ワークショップ in 仙台 Grails(とことん)入門
G*ワークショップ in 仙台 Grails(とことん)入門G*ワークショップ in 仙台 Grails(とことん)入門
G*ワークショップ in 仙台 Grails(とことん)入門
 
The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09The Beauty And The Beast Php N W09
The Beauty And The Beast Php N W09
 
concurrency with GPars
concurrency with GParsconcurrency with GPars
concurrency with GPars
 
Building a Pluggable Plugin
Building a Pluggable PluginBuilding a Pluggable Plugin
Building a Pluggable Plugin
 
Fnt Software Solutions Pvt Ltd Placement Papers - PHP Technology
Fnt Software Solutions Pvt Ltd Placement Papers - PHP TechnologyFnt Software Solutions Pvt Ltd Placement Papers - PHP Technology
Fnt Software Solutions Pvt Ltd Placement Papers - PHP Technology
 
Introduction to hibernate
Introduction to hibernateIntroduction to hibernate
Introduction to hibernate
 

Similar a Design of bare metal proxy compute node

BOS K8S Meetup - Finetuning LLama 2 Model on GKE.pdf
BOS K8S Meetup - Finetuning LLama 2 Model on GKE.pdfBOS K8S Meetup - Finetuning LLama 2 Model on GKE.pdf
BOS K8S Meetup - Finetuning LLama 2 Model on GKE.pdfMichaelOLeary82
 
Kafka JDBC Connect Guide(Postgres Sink).pptx
Kafka JDBC Connect Guide(Postgres Sink).pptxKafka JDBC Connect Guide(Postgres Sink).pptx
Kafka JDBC Connect Guide(Postgres Sink).pptxwonyong hwang
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Cosimo Streppone
 
Symfony2 and Doctrine2 Integration
Symfony2 and Doctrine2 IntegrationSymfony2 and Doctrine2 Integration
Symfony2 and Doctrine2 IntegrationJonathan Wage
 
Go Faster With Native Compilation
Go Faster With Native CompilationGo Faster With Native Compilation
Go Faster With Native CompilationPGConf APAC
 
Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2Rajeev Rastogi (KRR)
 
ARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CIARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CICosmin Poieana
 
First Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentFirst Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentNuvole
 
XPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
XPDDS18: Xenwatch Multithreading - Dongli Zhang, OracleXPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
XPDDS18: Xenwatch Multithreading - Dongli Zhang, OracleThe Linux Foundation
 
Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...Adrian Huang
 
Working with core dump
Working with core dumpWorking with core dump
Working with core dumpThierry Gayet
 
Wtf is happening_inside_my_android_phone_public
Wtf is happening_inside_my_android_phone_publicWtf is happening_inside_my_android_phone_public
Wtf is happening_inside_my_android_phone_publicJaime Blasco
 
Jaime Blasco & Pablo Rincón - Lost in translation: WTF is happening inside m...
Jaime Blasco & Pablo Rincón -  Lost in translation: WTF is happening inside m...Jaime Blasco & Pablo Rincón -  Lost in translation: WTF is happening inside m...
Jaime Blasco & Pablo Rincón - Lost in translation: WTF is happening inside m...RootedCON
 

Similar a Design of bare metal proxy compute node (20)

BOS K8S Meetup - Finetuning LLama 2 Model on GKE.pdf
BOS K8S Meetup - Finetuning LLama 2 Model on GKE.pdfBOS K8S Meetup - Finetuning LLama 2 Model on GKE.pdf
BOS K8S Meetup - Finetuning LLama 2 Model on GKE.pdf
 
Kafka JDBC Connect Guide(Postgres Sink).pptx
Kafka JDBC Connect Guide(Postgres Sink).pptxKafka JDBC Connect Guide(Postgres Sink).pptx
Kafka JDBC Connect Guide(Postgres Sink).pptx
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013
 
Symfony2 and Doctrine2 Integration
Symfony2 and Doctrine2 IntegrationSymfony2 and Doctrine2 Integration
Symfony2 and Doctrine2 Integration
 
Go Faster With Native Compilation
Go Faster With Native CompilationGo Faster With Native Compilation
Go Faster With Native Compilation
 
Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2Go faster with_native_compilation Part-2
Go faster with_native_compilation Part-2
 
C Assignment Help
C Assignment HelpC Assignment Help
C Assignment Help
 
ARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CIARGUS - THE OMNISCIENT CI
ARGUS - THE OMNISCIENT CI
 
Go Faster With Native Compilation
Go Faster With Native CompilationGo Faster With Native Compilation
Go Faster With Native Compilation
 
First Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentFirst Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven Development
 
kubernetes practice
kubernetes practicekubernetes practice
kubernetes practice
 
XPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
XPDDS18: Xenwatch Multithreading - Dongli Zhang, OracleXPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
XPDDS18: Xenwatch Multithreading - Dongli Zhang, Oracle
 
Cloud RPI4 tomcat ARM64
Cloud RPI4 tomcat ARM64Cloud RPI4 tomcat ARM64
Cloud RPI4 tomcat ARM64
 
Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...Process Address Space: The way to create virtual address (page table) of user...
Process Address Space: The way to create virtual address (page table) of user...
 
Working with core dump
Working with core dumpWorking with core dump
Working with core dump
 
Wtf is happening_inside_my_android_phone_public
Wtf is happening_inside_my_android_phone_publicWtf is happening_inside_my_android_phone_public
Wtf is happening_inside_my_android_phone_public
 
Jaime Blasco & Pablo Rincón - Lost in translation: WTF is happening inside m...
Jaime Blasco & Pablo Rincón -  Lost in translation: WTF is happening inside m...Jaime Blasco & Pablo Rincón -  Lost in translation: WTF is happening inside m...
Jaime Blasco & Pablo Rincón - Lost in translation: WTF is happening inside m...
 
R-House (LSRC)
R-House (LSRC)R-House (LSRC)
R-House (LSRC)
 
Basics of building a blackfin application
Basics of building a blackfin applicationBasics of building a blackfin application
Basics of building a blackfin application
 
PhpBB meets Symfony2
PhpBB meets Symfony2PhpBB meets Symfony2
PhpBB meets Symfony2
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Design of bare metal proxy compute node

  • 1. + Design of general bare_metal proxy compute node Mikyung Kang (mkkang@isi.edu) Dong-In Kang (dkang@isi.edu) 1 May 20, 2011
  • 2. TODO [1] nova.conf + 2 Current Version Next Version Proxy Compute Node Proxy Compute Node LibvirtConnection LibvirtConnection (libvirt_conn.py) proxy_baremetal (libvirt_conn.py) --connection_type=libvirt specific model --connection_type=libvirt --connection_type=gpu --connection_type=gpu ProxyConnection (proxy_baremetal.py) 1 --connection_type=baremetal --connection_type=tilera gPXE.py? TileraConnection TileraConnection ….. ArmConnection (tilera.py) (tilera.py) (arm.py) --baremetal_driver=arm HeckleConnection 2 --baremetal_driver=tilera (heckle.py) --baremetal_driver=heckle Specific arch. or 1.  Changing --connection_type: tilera  baremetal Specific provisioning tool 2.  Adding –baremetal_driver option in nova.conf: tilera/arm/heckle/…
  • 3. TODO [2] proxy_baremetal.py overview + 3 Next Version Proxy Compute Node --connection_type=baremetal def create_domain(..): ProxyConnection … (proxy_baremetal.py) load bare_metal as –baremetal_driver in nova.conf baremetal_id = bare_metal.get_idle_node() new_dom = { class ProxyConnection ’baremetal_type': bare_metal, def _get_connection(..): ’baremetal_id': baremetal_id, // _conn <- baremetal_doms 'name': xml_dict['name'], def destroy(..): 'mac_address': xml_dict['mac_address'], // _conn.destroy_domain(..) 'ip_address': xml_dict['ip_address'], // db.instance_set_state(..) 'dhcp_server': xml_dict['dhcp_server'], 'image_id': xml_dict['image_id'], def reboot(..): 'kernel_id': xml_dict['kernel_id'], // _conn.reboot_domain(..) 'ramdisk_id': xml_dict['ramdisk_id'], // db.instance_set_state(..) 'status': power_state.NOSTATE} def spawn(..): self.domains.append(new_dom) // inject key into image self.change_domain_state(..) // _conn.create_domain(..) bare_metal.set_fs(..) // db.instance_set_state(..) bare_metal.activate_node(..) def get_console_output(..): … // console_log
  • 4. TODO [3] proxy_baremetal.py: domain management + 4 •  bare_metal.get_idle_node() is needed baremetal_id - ID format is different system by system - ID can be board_number or string name - “baremetal_type” and “baremetal_id” - return value: baremetal_id •  bare_metal.get_status() & set_status() are needed - Status can be number(0/1) or string (None/ALLOCATED) - argument and return value: 0/1 (conversion) Tilera: <board_id> 0 ~ 9 Status field is added in __init__ [{'status': 0, 'kernel_id': '1896115634’, 'ramdisk_id': '', 'image_id': '1552326678', 'ip_address': '10.9.1.45’, 'board_id': 2, 'name': 'instance-00000046', 'vcpus': 1L, 'mac_address': '02:16:3e:1f:84:69', 'dhcp_server': '10.9.1.1'}] ‘baremetal_type’:’tilera’, ‘baremetal_id’:2 Heckle: <Name> bb01~
  • 5. TODO [4] proxy_baremetal.py: get_image & set_image + 5 •  bare_metal.get_image(baremetal_id) is needed set_fs - Case#1: passed image by euca-run-instances (every time) - no needed - Case#2: fake bare metal image / no passed image (manual) - Actual images should be passed - After getting images (path) from bare_metal, vmlinux/initrd/disk should be copied to basepath/. Then key should be injected to real disk image. •  bare_metal.set_image(baremetal_id) is needed - In case that specific directory is used for images (/tftpboot/), it should pass the key injected image into specific directory Tilera: bpath/root -> /tftpboot/fs_x.tar.gz /tftpboot [{'status': 0, 'kernel_id': '1896115634’, 'ramdisk_id': '', 'image_id': '1552326678', 'ip_address': '10.9.1.45’, 'board_id': 2, 'name': 'instance-00000046', 'vcpus': 1L, 'mac_address': '02:16:3e:1f:84:69', 'dhcp_server': '10.9.1.1'}] /bootconfig Heckle: <Image> /node /image /hardware /user /powercontroller …
  • 6. TODO [5] proxy_baremetal.py: activate_node + 6 •  bare_metal.activate_node(baremetal_id, ip_addr, mac_addr) Activate_node - In case of Tilera, the first/second boot use different vmlinux. In case of Heckle, script is used for setting activation -> bare_metal.boot_set() (Tilera:mboot <-> gPXE script) - Tilera uses ePDU management script <-> IPMI -> bare_metal.power_mgr() -> bare_metal.check_activated() - Some settings for network and services are needed -> bare_metal.network_set() •  bare_metal.deactivate_node(baremetal_id) is needed [destroy] Tilera: /tftpboot/vmalinux_x_1 and _2 Heckle: <vmlinux>
  • 7. TODO [6] proxy_baremetal.py: get_console_output + 7 •  bare_metal.get_console_output(instance) is needed console_output - In case of Tilera, /proc/kmsg output is saved offline and then reused whenever it is needed b/c MDE 2.0 doesn’t support dmesg - Most bare metal machines can get dmesg output and then save before running OpenStack Tilera:
  • 8. TODO [7] proxy_baremetal.py: update_available_resource() + 8 •  Needed host information update_resource - get_vcpu_total() - get_memory_mb_total() - get_local_gb_total() - get_vcpu_used() - get_memory_mb_used() - get_local_gb_used() - get_hypervisor_type() - get_hypervisor_version() - get_cpu_info() •  bare_metal.get_hw_info(field) is needed - In case of Tilera, all information is saved into tilera_boards file, and each field is loaded from file when running OpenStack, and then each specific field is retrieved through “field” arg. - vcpu: # of bare_metal node, it should be changed acct. #(run) - total/used: each information of each node - Assumption: one proxy bare_metal for homogeneous machines Tilera: tilera_boards Heckle: Properties
  • 9. Overview + Should be separated into 2 or 3 files and each func. 9 should be added/modified! --connection_type=baremetal proxy_baremetal.py baremetal_dom.py arch.py (ex. tilera.py) __init__ __init__ class _nodes def set_status() Init_host() read_domain_from_file() def check_idle_node() _get_connection() reboot_domain() def get_idle_node() def find_ip_w_id() destroy() destroy_domain() def free_node() reboot() create_domain() def deactivate_node() def activate_node() spawn() change_domain_state() get_console_output() store_domain() def get_hw_info() def get_image() update_available_resource() find_domain() def set_image() … list_domains() def get_console_output() def check_activated() get_domain_info() … … --baremetal_driver=arch or tool (tilera/arm/heckle/…)