Feature #411

Επέκταση του Ganeti backend ώστε να υποστηρίζει το χειρισμό ιδιωτικών δικτύων

Added by Vangelis Koukis about 13 years ago. Updated almost 13 years ago.

Status:Closed Start date:04/12/2011
Priority:Medium Due date:
Assignee:Apollon Oikonomopoulos % Done:

0%

Category:Ganeti Spent time: -
Target version:v0.4

Description

Η ανάπτυξη για αυτό το μέρος γίνεται ως μέρος του Ganeti και δεν αφορά άμεσα το Synnefo, αλλά ανοίγω εδώ το ticket ώστε να φαίνεται η εξάρτηση και να μπορούμε να το παρακολουθήσουμε στο roadmap.

Χρειάζεται το Ganeti να επεκταθεί ώστε να προσφέρει μηχανισμό δημιουργίας/καταστροφής ιδιωτικών δικτύων και σύνδεσης/αποσύνδεσης ganeti instances πάνω τους. Ο μηχανισμός αυτός πρέπει να παρέχεται τελικά μέσω του RAPI. Θα χρησιμοποιείται από την υλοποίηση του API στο Synnefo, το οποίο είναι υπεύθυνο για να κρατάει state για το ποια δίκτυα υπάρχουν, και ποια μηχανήματα είναι συνδεδεμένα πού, χωρίς να χρειάζεται να ρωτήσει το Ganeti για αυτό. Κάνει κλήσεις στο Ganeti για να πραγματοποιήσει αλλαγές στην τοπολογία των δικτύων.


Related issues

related to Synnefo - Feature #513: To API διαχειρίζεται ιδιωτικά δίκτυα και εκτελεί κλήσεις ... Closed 05/11/2011
blocks Synnefo - Feature #407: Υποστήριξη δικτύων από το Synnefo Closed 04/12/2011

Associated revisions

Revision 64938cb0
Added by Giorgos Verigakis almost 13 years ago

Connect networks API with the Ganeti

  • Create Ganeti network link when creating a network.
  • Delete the link when deleting the network.
  • Use a pool of GANETI_MAX_LINK_NUMBER network links.
  • Adding or removing a server from a network requires reboot.

A database migration is needed.

Refs #513
Refs #411

History

#1 Updated by Vangelis Koukis almost 13 years ago

Τα patches από [apollon] για υποστήριξη IP pool management στο Ganeti έχουν εγκατασταθεί.

Το API implementation μπορεί να ζητήσει μια NIC να συνδεθεί με συγκεκριμένο link, στο οποίο έχει ενεργοποιηθεί IP pool management.

Έχουν προκύψει τα εξής θέματα:

  1. πώς αφαιρεί κανείς μια NIC; σύμφωνα με το documentation του Ganeti φαίνεται να μπορεί να αφαιρεθεί μόνο η τελευταία NIC (http://docs.ganeti.org/ganeti/2.4/html/rapi.html?highlight=rapi#id30)
    1. πώς είναι αριθμημένες οι NICs και τι θα συνέβαινε με το renumbering; τώρα διαγράφεται μόνο η τελευταία βέβαια.
  2. η προσθήκη ενός private network θα γίνεται με προσδιορισμό χωριστού, αυθαίρετου link. Αν είναι mode=routed απαιτείται IP, θα περνάει μια συγκεκριμένη, π.χ. "0.0.0.0"; αν είναι mode=bridged απαιτείται η ύπαρξη του [αυθαίρετου] link ως bridge στο σύστημα.
  3. το ip pool management δεν φαίνεται να συμμετέχει στη φάση prereq για ModifyInstance() οπότε δεν γίνεται να προσθέσει κανείς NIC με ip=pool μετά τη δημουργία του μηχανήματος.

#2 Updated by Faidon Liambotis almost 13 years ago

Έπειτα από συζητήση με τον Βαγγέλη καταλήξαμε στα εξής:
  • Υπάρχει ένα limitation στην πλευρά του Ganeti κατά το οποίο επιτρέπεται μόνο push/pop δικτυακών καρτών και άρα η υλοποίηση της προσθαφαίρεσης δικτύων (και άρα καρτών) θα πρέπει να φροντίζει για την επαναδημιουργία του stack (λειτουργία η οποία μάλισταν δεν γίνεται να γίνει ατομικά)
  • Το δημόσιο δίκτυο λόγω σχεδιασμού του Ωκεανού θα είναι mode=routed με κάποιο προκαθορισμένο link· το link τουλάχιστον (ενδεχομένως και το mode) θα πρέπει να είναι ρύθμιση στο settings.py.
  • Τα ιδιωτικά δίκτυα, επίσης λόγω σχεδιασμού πρώτης έκδοσης του Ωκεανού, θα είναι mode=bridged με bridges που θα έχουν κάποια προκαθορισμένη (και ενδεχομένως επίσης ρυθμίσιμη) ονοματολογία, π.χ. prv10 για το ιδιωτικό δίκτυο 10.
  • Το namespace της αρίθμησης των ιδιωτικών δικτύων το διαχειρίζεται το synnefo, ωστόσο τα δίκτυα προρυθμίζονται στους hosts μιας και το Ganeti απαιτεί την ύπαρξη του bridge interface προτού τρέξει το kvm-vif-bridge. Κατά συνέπεια είναι καλό να υπάρχει ένα προκαθορισμένο φάσμα αρίθμησης ιδιωτικών δικτύων και μάλιστα όχι πολύ μεγάλο(π.χ. 1-100)· κάτι τέτοιο σημαίνει αυτόματα ότι πρέπει να υλοποιηθεί η επαναχρησιμοποίηση αριθμών δικτύων και όχι η χρήση ενός συνεχώς αυξανόμενου αριθμού (π.χ. id).

#3 Updated by Vangelis Koukis almost 13 years ago

  • Status changed from Assigned to Closed

το Ganeti backend έχει επεκταθεί ώστε να υποστηρίζει δημόσιο και ιδιωτικά δίκτυα.
Έχουν εγκατασταθεί και δοκιμαστεί στο development Ganeti τα patches του Απόλλωνα για IP pool management (gnt-network).
Υπάρχει kvm ifup script που θέτει σε κατάλληλα bridges τα virtual interfaces, και ενημερώνει τον NFDHCPD για τις IPs που έχουν ανατεθεί σε κάθε δημόσιο interface.

Αυτό κλείνει, ανοίγουμε νέο για ό,τι χρειαστεί, κατά περίπτωση.

Also available in: Atom PDF