SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
+




    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/…)

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Dernier (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

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/…)