Bestand wählen
Merken

Live Atomic updates

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
on the which um welcome to my talk about life or atomic the online alive atomic updates um prefer the term life to online since online implies is where life where you could do speak it out of the state of the system I would still be alive Update data-fitting dropping services um my goal of coming it at all they do is to get you to buy in from the idea that we need to have both online updates and love of the working together and balance a few ideas of people because I haven't got a complete solution yet clicking it versus what do I mean by large talk about um alive Update means of updating a system while it's running say that have any service average so he the website you don't get the connection failed because the requests came in y you were a dating service for atomic is it more difficult to explain month of of project atomic OS 3 things like that and you go from 1 version of the installed system to the other in 1 go so you get in entirely the old version on an entirely new version I'm not all the intermediate states in between where you install this is far removed this file J. this file partially so half of its written half of it isn't and In tradition this is generally done book on it atomic updates on generally done by restarting into the new version in my experience an so you get anatomical that but not all I wanted you have to take the entire system down rate up again um traditional embedded projects this with maybe partitioning so when you're running on partition a you prepare partition be instructor below the built into the and then reboot so you're running B is getting yes in what you know you want to use the that gets we're getting getting to that at the end this is lots of fun for reminding me of um traditionally you do this way that the partitioning of that 2nd rebooted the bats you can also do a rescue and a current 1 where you reboot into a rescue partition uninstall the current 1 Austrian project atomic do this by rebooting into different hobbling trained using some very clever technology um of my day job I worked on a project called base rock for a company called go think there's a few of those on the audience and this has its very having visions of a software as different subvolumes and it reboots into each into a different but resource going to do the atomic update and books reasoning by the investigating Leibe atomic updates is because we don't have to reboot every time when we want to apply an update because we want to provide a web server and apply the updates without dropping any connections can the and we want atomic updates because news implies the have do system image-based visioning Sir Robin having to work at exactly was running on a system by looking at the entire package list finding all the package that finding the Virgin RID package and being shook ensuring that it's actually correct so you can look from the system is up of this is version server water waves of its EU and which helps in supports because if you know sauntering words of 1 you can know exactly what's going on there where as if they were installing brand packages they could end up with any combination thereof we also want to sort data because if you can't swap everything together at once it's not reliable if you lose power made package updates then a urine of inconsistent states where you have anything going on and the system might not be bootable there's tricks for ensuring that an individual file can be written atomically so you don't see in the in progress Work where in the 1st half of the 2nd half is still in the old file but this if you're interdependent files searches seal up such a shared object libraries need to find the same sort of replacing them but for live CD 3rd to support lovers will come with its depend on its but that the urgent and live these generally backwards compatibility so if you want to update these 2 1st you update this when you want and then these can be updated and the EU the new versions and in the mid state wave of the this 1 but not these space using the overwritten safely but it's you need to declare this dependency somewhere word-to-word which of law packaging overhead the and if this internal API is incorrect then you is still in the state of when you do the updates and something goes wrong stuff not George Eliot's the is good about internal ABI differences since it because a lot of symbols as to the privacy it's obvious that if it's private then nothing at all could possibly depending on on them so it's safe to change in the eye that so as the 2 files and might need to be updated in lock step of the system to be viable we need some way of updating them all together uh try to come up with a way of doing it atomic file-system system update From this perspective all running processes that is to set up 1 you might put all the data available so if everything can use it and to you actually make the process and use the new versions In based off we ABC what file system so if we want to update from factory to uh the 1 we have to create a binary delta and you applied to backed any yet backed you up to synchronize configuration and all the actual state 8 users goes in that not so important it's not about if step sort of mass and graph is was mark of the most convenient tool so there's all get mounted like maps the root file system is about and that has BFS tab
describing how to mount all these so the
result is you end of file system with these entries but up onto the web and the actual file system they come from because the by now there is no clear not so obvious that it's the mount through which you can come to but repressed from specify different so volume but you can do it rather doing that by Martin it somewhere else 1st and then find backing the subdirectory and then see this if you run the fondant all of the prox of mountain the term isn't a way to reduce the amount of some boy in he is a difference of if I make sense that you can't change over God table back points to by just remounting it so instead I created Jupiter Mount tree which looks mostly the same as that accept the change to what we're mounting but and when I do appear route to will BC around which means that from the perspective of somebody a base you now swapped wiring is he did the same kind of transmission uh transition every boots when going from the inner from best to your real response unfortunately route won't make all we all existing processes use the new versions old only change calling process is real and current working directory we all processes are still pointing to the old versions so why you logically Saul BC round all you processes have noticed the it's not for the userspace way you're running in the inner from there since as a very few processes running but you need to migrate the the will to do for everything so and half where proof of concept is the ugly ugly hack of using the trace to make this process cheering notes she and reopen always valid crypton the yes it's a very surprising and and it's not an appropriate solution since the whole process of the trace of all most processes on the larger Charette to and they really don't want it when the actual in when the underlying while changes uh for example Journal the From this in the when it restarts its he sits existing state around and of in a way that that it doesn't drop any connections by passing the ball descriptors for each of the processes its monitoring backed assistant any writing out state to slap run to say which follow the script was which and that it when you restart seeking the use of those positive the back and it reads from the state in fact from which when it was it works out which 1 it was by the st dead and STI no field from the old ripped stop it and if you do open both of change so the trace it back the if you do that understand about to show you how well it works
and full screen this is 3rd time
are recorded with the script command because I really didn't want to risk it not working then but specify how to replace the mount point it runs does reversed on because I forgot that the the the review also need to be have non-private mad propagation at so here we go to create parliamentary but they're warning all the process not the traceable that's not working all the way down to that but then it's got to the end after moving a few and has divided into new what patterns so it's got the edge but just demonstrated that the vision GCC has changed between the old version and new version the will be some good upper prose or always good
student because the traits is wrong I could improve it slightly by using read a map to the new system is and call me can exchange 2 directory entries atomically so the you can complete all around so you have a similar to the old version and religions you directory if you what the sounds that existing process is still have the old old routine if you change the directory entry the reason for this is the process is referred to the file itself not the pattern the fall system where it came from so inequalities rename so moving around rather than the parliamentary I showed all way back when that run this parliamentary idea we still have to move all processes and find an alternative to the trace and we could try to add a new kernel for changing a processes follows Richter's books by my dad's goods the upstream got by using blue Lipscomb would accept basically full lawful and it still has the staff of this fall Chadian between running so you don't integrate generally um but and going to logo your ideas for things we might actually were 1 would be all transactions there's been a few attempts to do something like this and there's been at least 2 attempts to do it's specific people buffer the security code in which lets you start a transaction and runs them insist calls and then when you and the transaction all the changes have been applied atomically unfortunately if you know very very can yield then what your entire system so not useful that was a patch as well to have special the from where transaction where you provide a list of Cecil's to run in the transaction but back or rejected when the suggestion was that instead you should have a way of merging 2 subvolumes so you so a soccer game work from new branch you make your changes then energy um another approach would be to take an atomic update by freezing lawyer running processes it doesn't matter if it takes longer to do each individual thing if you can that please make it OK but it's all the same for everyone and you can freeze a bunch of processes with a freezer see group and to make sure that we got something reliable way through we freeze everything create a snapshot in bootloader to you that snapshot of all all those wrong of weather changes and it works we tell the bootloader but occasionally you that's not preventable were working there this and unfreeze so if the power goes out all updating you still viable system and between no processes of seeing something wrong the yes things and yeah but what that it you freeze everything you don't need a single operation to put everything around so rather than replacing which directory people would use you he all directories around but change the contents like you were doing its normal package update which works by removing the files but leaving the directory tree still standing my goal is to have something which isn't a regression on installing packages on the system and if you have your route changing and you is wrong then you know the that so but also to see which gives only i gives up on the idea of updating all processes together anyway is but rather than in front of every process to use the new version of the file system we just what all of which measure of positive in it's using and having resampled processes in the new file system this is not completely terrible idea because you can make process as is and all states to it and start again with the new state leader don't rock connections but it doesn't work was his latest sessions because you need your SSH key to be a but look down at all Your processes and what how it needs to restart them to get to work properly a final approach would be to come up with the property policies and that goes on top so you processes interact with that but you can have the property system atomically small which backing file system it should be using and it can be brought to the order number so that a change in between a bit worried about is what on since at very likely to just end up finding more things which don't work particularly and ended and of a big part of their AUF test the layering policies to nearly fits the bill because it does the honorary mapping for you and you can add a new layer on top so new processes will see the New version of the we can't remove the old version from underneath while it's still things open on it so you can yes they can can you use the new version but you will be able to remove the old old buyers from your system until you've effectively rebooted this the whole I this is your so yeah after you've done the atomic it update for every process you still need to restart everything to make it use the new versions of the virus but you need to do that with package based of that's already and figures will be a useful way to tell if process of the role but for that but you can look in Proc cells the no prop maps to see which by theory the raw prosodic maps to see which finally still which processes Apple binary still mapped in so which was still running all and any other questions because really went through that that with the aspect that it's yes the back so what is it out of the the I I was I the need the use of of the of the the not so you all of that yeah I all of this and how it is applied to the the part of the way the the so yeah so it's still lot what the use of a mark yeah the point if I use of more about that but use of we also have if it's useful for you connected with an SSH session you're running a shallow and you want to read be that still operate and seen many of the has been applied at all but yet you would need to restart the new processes and Apache does have a way of doing that without dropping any connections discover graceful restart which is good and the the name is that all a lot and it let me go the restart
again readers of all people on 1 hand this individual process restart which is a lot more like and doing the whole system but yet of the voice of the stuff the were you going in and out of the way the end of the year of the war that so what if you're problem with if you have a lot of time on the yeah the line and the back here the the the on the and I'm not sure of all you for the question but could I use LV preload to do in directions of process is given you believe your that is all of in the of the world and the the it with you and yeah I think that have to word aligned this is what we are really here and the the the the the the to be the theory and 1 of the things about that 1 and 2 and that was 1 of the the um I looked at whether you can could use that and I think the question was the next those big restart processes by the when it changes the same links for each of the package it is installed it restarts any processes which we're using things represented to be old path from the same link and Weber backwards yeah making better and I looked at symbolic it links for constructing the ball system in a way which you could atomically update individual all entries but it processes are referred to follows after following it then they're still using the pollen a replacing semi means you have to replace the everything you have to restart the process but yeah but the problem is that if you have a big long trivial things like you need to replace the entire root directory as 1 no well I want to have the entire Paul system of data set at once because there's different parts which in the depend on different versions which I think needs get away with because each component refers to a specific version of a dependency but it's all debate everything so that the interdependent parts updated in lockstep whereas with Knicks they replace a symbolic link and and the people version of a binary get is changed to a new version and time no permits there yes I the way you do that you the you and you see a theory this to you in the old files which is exactly what happened in packet-based updates um and each of them to use the new version so even the idea of the universe and sees the world and you you you you like library of How do you also have to know this yet but it can gracefully restart in such a way that it does not any connections and it will eventually the new I'm not sure about the but the question sorry so that it is you know and um originally started growing is found the in the brain so as we read about me I used to use I think the this is what we did not use only about the kind of people grave and that I the end of the day from the the the only way to do this and that and moving on the the this more university of change the thing that the presence of this you about if and you change while the rest the like that the core of the what the goal of this work can be found nature of the veracity the the the of the of the of the yeah so what you might think about it's telling it that when it reopened it's telling that it it will only use this new directory Robin any existing falls itself I didn't want to go as far as the open ball descriptors for actual file content because a packet-based of based it already have back and that's beyond the scope of what I want to solve this point I don't want it to be worse than a package that day I wanted to be better in a way that you don't get any intermediate states where this it could reboot on the system be broken the history a method that is just the the and so this is the view of the world of race and use so you can with building here in the USA and on a the of this the you you go and say just the the the it's it's also matters for how some processes gracefully restart they might decide to re exact rather than than have our system the approach work by you had your the screwball descriptive back and you restart it he that you still have the old root directory which is pointing to the wrong thing I believe all descriptive pointing the wrong thing the creates 1 of the things and theirs there will be probably others as I can
find but the unbound all the things which can go wrong many ask questions very quickly but what I want starting to speed up the and the the uh I'm sure a lot of people want pulses and transactions and if we can get working this would solve this but it's all the approaches I've seen haven't gone anywhere which is why it's in 1 of the future things to investigate to see if they can be them properly thanks to the question so what do you feel about this and the the the um yeah we can I maybe although they're running read-only so at least they're not doing any harm by still running but we wanted migrating to the new Virginia yet yeah but broken link this to off thank
Prozess <Physik>
Welle
Versionsverwaltung
Gesetz <Physik>
Raum-Zeit
Spezialrechner
Prozess <Informatik>
Dateiverwaltung
Wurzel <Mathematik>
Maschinelles Sehen
Ruhmasse
Bitrate
Arithmetisches Mittel
Software
Dienst <Informatik>
Server
Projektive Ebene
Overhead <Kommunikationstechnik>
Aggregatzustand
Subtraktion
Web Site
Wellenlehre
Schaltnetz
Ordinalzahl
Term
Physikalisches System
Benutzerbeteiligung
Arithmetische Folge
Software
Mittelwert
Perspektive
Programmbibliothek
Konfigurationsraum
Ganze Funktion
Widerspruchsfreiheit
Leistung <Physik>
Einfach zusammenhängender Raum
Videospiel
Datenmissbrauch
Graph
Booten
Mailing-Liste
Symboltabelle
Physikalisches System
Elektronische Publikation
Partitionsfunktion
Quick-Sort
Mapping <Computergraphik>
MIDI <Musikelektronik>
Ordinalzahl
Faktor <Algebra>
Wort <Informatik>
Resultante
Prozess <Physik>
Mathematisierung
Gruppenoperation
Versionsverwaltung
Unrundheit
Term
Netzwerktopologie
Benutzerbeteiligung
Perspektive
Endogene Variable
Skript <Programm>
Dateiverwaltung
Spezifisches Volumen
Demo <Programm>
Einfach zusammenhängender Raum
Booten
Datentransfer
Routing
Software
Datenfeld
Beweistheorie
Grundsätze ordnungsmäßiger Datenverarbeitung
Korrelationskoeffizient
Verzeichnisdienst
Aggregatzustand
Tabelle <Informatik>
Tabusuche
Prozess <Physik>
Punkt
Ausbreitungsfunktion
Versionsverwaltung
Fitnessfunktion
Instant Messaging
Information
Benutzeroberfläche
Gerade
Open Source
Software
Freeware
Funktion <Mathematik>
Verschlingung
Mustersprache
Skript <Programm>
Maschinelles Sehen
Touchscreen
Demo <Programm>
Punkt
Prozess <Physik>
Natürliche Zahl
Gruppenkeim
Versionsverwaltung
t-Test
Binärcode
Richtung
Kernel <Informatik>
Netzwerktopologie
Lineare Regression
Mustersprache
Dateiverwaltung
Wurzel <Mathematik>
Figurierte Zahl
Gerade
Einflussgröße
Umwandlungsenthalpie
Softwaretest
Nichtlinearer Operator
Sichtenkonzept
Kategorie <Mathematik>
Computersicherheit
Gebäude <Mathematik>
Güte der Anpassung
Systemaufruf
Software
Transaktionsverwaltung
Ordnung <Mathematik>
Schlüsselverwaltung
Verzeichnisdienst
Aggregatzustand
Computervirus
Ortsoperator
Stab
Mathematisierung
Gefrieren
Interaktives Fernsehen
Zahlenbereich
Zellularer Automat
Code
Physikalische Theorie
Ungleichung
Spieltheorie
Programmbibliothek
Äußere Algebra eines Moduls
Zusammenhängender Graph
Inhalt <Mathematik>
Ganze Funktion
Grundraum
Demo <Programm>
Leistung <Physik>
Einfach zusammenhängender Raum
Booten
Verzweigendes Programm
Mailing-Liste
Routing
Physikalisches System
Binder <Informatik>
Elektronische Publikation
Mapping <Computergraphik>
Energiedichte
Patch <Software>
Offene Menge
Mereologie
Wort <Informatik>
Speicherabzug
Software
Transaktionsverwaltung
Puls <Technik>
Binder <Informatik>

Metadaten

Formale Metadaten

Titel Live Atomic updates
Untertitel Installing new software without the need for packages or a reboot
Alternativer Titel Distributions - Live Atomic Updates
Serientitel FOSDEM 2015
Autor Maw, Richard
Lizenz CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
DOI 10.5446/34346
Herausgeber FOSDEM VZW
Erscheinungsjahr 2016
Sprache Englisch
Produktionsjahr 2015

Inhaltliche Metadaten

Fachgebiet Informatik

Ähnliche Filme

Loading...
Feedback