)]}'
{"doc/source/cells.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"12187d655c706130edd8b02f7788233a574462c5","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"This is the starting place for most current deployments.  In case you arrived"},{"line_number":169,"context_line":"here by skipping the description of cells v2 and just want to know what you\u0027ll"},{"line_number":170,"context_line":"need to do let me lay out a few basics you should understand about cells v2:"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* nova-api will live outside of all cells and it\u0027s primary purpose becomes a"},{"line_number":173,"context_line":"  router for requests.  It will have a new nova_api database containing"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_92bf13cf","line":170,"range":{"start_line":170,"start_character":8,"end_line":170,"end_character":11},"updated":"2016-02-18 20:49:47.000000000","message":"do, let me...","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"650feb6c1adee303db0bd346a34def0ffd77dacd","unresolved":false,"context_lines":[{"line_number":174,"context_line":"  information about cells, how to connect to them, and which instances are in"},{"line_number":175,"context_line":"  which cell."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* nova-scheduler will also live outside of all cells.  There are many ways that"},{"line_number":178,"context_line":"  we could structure the data that is sent from cells to the scheduler which"},{"line_number":179,"context_line":"  would affect how filtering/weighing happen, but we will start simple and the"},{"line_number":180,"context_line":"  scheduler will continue to act on lists of hosts."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* Everything else in a current deployment becomes the first cell.  Each"},{"line_number":183,"context_line":"  additional cell will be a copy of that infrastructure: database, message"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_3064e8e3","line":180,"range":{"start_line":177,"start_character":55,"end_line":180,"end_character":51},"updated":"2016-02-16 11:02:27.000000000","message":"well, not sure I like this. I\u0027d rather say \"for the moment, the scheduler will continue to work the same, but we\u0027re not against thinking about redesigning it for the next episodes.\"","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"07d37dabc69786b713d07ce632054e6e80982410","unresolved":false,"context_lines":[{"line_number":174,"context_line":"  information about cells, how to connect to them, and which instances are in"},{"line_number":175,"context_line":"  which cell."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* nova-scheduler will also live outside of all cells.  There are many ways that"},{"line_number":178,"context_line":"  we could structure the data that is sent from cells to the scheduler which"},{"line_number":179,"context_line":"  would affect how filtering/weighing happen, but we will start simple and the"},{"line_number":180,"context_line":"  scheduler will continue to act on lists of hosts."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* Everything else in a current deployment becomes the first cell.  Each"},{"line_number":183,"context_line":"  additional cell will be a copy of that infrastructure: database, message"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_efcba9a3","line":180,"range":{"start_line":177,"start_character":55,"end_line":180,"end_character":51},"in_reply_to":"dae33548_3064e8e3","updated":"2016-02-16 16:01:10.000000000","message":"Okay, I can reword this.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"12187d655c706130edd8b02f7788233a574462c5","unresolved":false,"context_lines":[{"line_number":174,"context_line":"  information about cells, how to connect to them, and which instances are in"},{"line_number":175,"context_line":"  which cell."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* nova-scheduler will also live outside of all cells.  There are many ways that"},{"line_number":178,"context_line":"  we could structure the data that is sent from cells to the scheduler which"},{"line_number":179,"context_line":"  would affect how filtering/weighing happen, but we will start simple and the"},{"line_number":180,"context_line":"  scheduler will continue to act on lists of hosts."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* Everything else in a current deployment becomes the first cell.  Each"},{"line_number":183,"context_line":"  additional cell will be a copy of that infrastructure: database, message"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_1293035c","line":180,"range":{"start_line":177,"start_character":55,"end_line":180,"end_character":51},"in_reply_to":"dae33548_efcba9a3","updated":"2016-02-18 20:49:47.000000000","message":"Without being familiar with Jay\u0027s army of specs for the scheduler and generic resource stuff, how much does that impact all of this?","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"b109ab62a8a8fa1f06da20830bb3539b8794fdaa","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"* There will be a special cell0 containing data on instances that could not be"},{"line_number":188,"context_line":"  scheduled to an active cell.  Cell0 is essentially just a database to park"},{"line_number":189,"context_line":"  these instances, it will have no compute hosts."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Given the above info the rough plan for upgrading to cells is the following:"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_80fcb6b8","line":189,"updated":"2016-01-15 16:52:10.000000000","message":"No compute hosts and also no other services, correct?  (conductor, scheduler, etc.)  It\u0027s literally just another database?","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"12187d655c706130edd8b02f7788233a574462c5","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"* There will be a special cell0 containing data on instances that could not be"},{"line_number":188,"context_line":"  scheduled to an active cell.  Cell0 is essentially just a database to park"},{"line_number":189,"context_line":"  these instances, it will have no compute hosts."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Given the above info the rough plan for upgrading to cells is the following:"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_f2e5bfdb","line":189,"in_reply_to":"da6ed579_0831c859","updated":"2016-02-18 20:49:47.000000000","message":"I really need to read the cell0 spec but I\u0027m not even sure what this buys us, but I\u0027m ignorant right now so just thinking out loud.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"97e417fead44ba429256ba134a3545c7772492b0","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"* There will be a special cell0 containing data on instances that could not be"},{"line_number":188,"context_line":"  scheduled to an active cell.  Cell0 is essentially just a database to park"},{"line_number":189,"context_line":"  these instances, it will have no compute hosts."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Given the above info the rough plan for upgrading to cells is the following:"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_0831c859","line":189,"in_reply_to":"da6ed579_80fcb6b8","updated":"2016-01-15 18:25:54.000000000","message":"Correct.  Unless something unexpected comes up the plan is for it to be just a database.  I can be more clear here.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"12187d655c706130edd8b02f7788233a574462c5","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Given the above info the rough plan for upgrading to cells is the following:"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"* Create new nova_api database and configure nova-api to connect to it."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Create new nova database and configure it as cell0."},{"line_number":196,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_52710b0b","line":193,"range":{"start_line":193,"start_character":2,"end_line":193,"end_character":71},"updated":"2016-02-18 20:49:47.000000000","message":"Since this is already in devstack, it might be useful to provide a link to it so people get an idea of what it means/how it works.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"650feb6c1adee303db0bd346a34def0ffd77dacd","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"* Create new nova_api database and configure nova-api to connect to it."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Create new nova database and configure it as cell0."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* Configure existing nova database and message queue to be a new cell."},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_30c0687c","line":195,"range":{"start_line":195,"start_character":18,"end_line":195,"end_character":26},"updated":"2016-02-16 11:02:27.000000000","message":"meh, isn\u0027t that just a CellMapping table defaulting to cell0 ?\n\nI don\u0027t want to see the operators afraid because we added a new API DB and then they would think they would have to add a 3rd DB, see ?","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"07d37dabc69786b713d07ce632054e6e80982410","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"* Create new nova_api database and configure nova-api to connect to it."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Create new nova database and configure it as cell0."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* Configure existing nova database and message queue to be a new cell."},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_4fe4553a","line":195,"range":{"start_line":195,"start_character":18,"end_line":195,"end_character":26},"in_reply_to":"dae33548_30c0687c","updated":"2016-02-16 16:01:10.000000000","message":"A third database is necessary. It could be on the same host as the API db though.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"12187d655c706130edd8b02f7788233a574462c5","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"* Create new nova_api database and configure nova-api to connect to it."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Create new nova database and configure it as cell0."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* Configure existing nova database and message queue to be a new cell."},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_f2fc9f73","line":195,"range":{"start_line":195,"start_character":18,"end_line":195,"end_character":26},"in_reply_to":"dae33548_4fe4553a","updated":"2016-02-18 20:49:47.000000000","message":"\"A third database is necessary. It could be on the same host as the API db though.\" Those are important details for this because I had the same thought as Sylvain when reading it the first time.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"12187d655c706130edd8b02f7788233a574462c5","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Create new nova database and configure it as cell0."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* Configure existing nova database and message queue to be a new cell."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Run tool to set up instance mappings for existing instances in the new cell."},{"line_number":200,"context_line":"  Note that this will only need to be done to bootstrap an existing deployment"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_9230b357","line":197,"range":{"start_line":197,"start_character":2,"end_line":197,"end_character":70},"updated":"2016-02-18 20:49:47.000000000","message":"Configure what exactly?","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"12187d655c706130edd8b02f7788233a574462c5","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* Configure existing nova database and message queue to be a new cell."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Run tool to set up instance mappings for existing instances in the new cell."},{"line_number":200,"context_line":"  Note that this will only need to be done to bootstrap an existing deployment"},{"line_number":201,"context_line":"  and after that the tool will be unnecessary."},{"line_number":202,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_72488fcc","line":199,"range":{"start_line":199,"start_character":6,"end_line":199,"end_character":10},"updated":"2016-02-18 20:49:47.000000000","message":"This is going to be a nova-manage CLI right?","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"650feb6c1adee303db0bd346a34def0ffd77dacd","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Run tool to set up instance mappings for existing instances in the new cell."},{"line_number":200,"context_line":"  Note that this will only need to be done to bootstrap an existing deployment"},{"line_number":201,"context_line":"  and after that the tool will be unnecessary."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":204,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_70ff90aa","line":201,"updated":"2016-02-16 11:02:27.000000000","message":"so, I have a question : are we planning to modify the mappings once they\u0027re in place ? I mean, moving an instance to a cell means that the host moves to the cell too, right?\nIf not, that\u0027s a migration...","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"07d37dabc69786b713d07ce632054e6e80982410","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Run tool to set up instance mappings for existing instances in the new cell."},{"line_number":200,"context_line":"  Note that this will only need to be done to bootstrap an existing deployment"},{"line_number":201,"context_line":"  and after that the tool will be unnecessary."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":204,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_8fedbd27","line":201,"in_reply_to":"dae33548_70ff90aa","updated":"2016-02-16 16:01:10.000000000","message":"Part of the previous step L#197 will migrate current hosts into that cell. I should explicitly state that.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"9141df58321f1ef50e8e6a8ba19b0b16a31ff58f","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":204,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":205,"context_line":"  part of normal operation."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"* Sit back and enjoy your new cells deployment."},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_2480b4f4","line":205,"updated":"2016-01-14 20:01:10.000000000","message":"Most of the API database tables can use online migration, can the instance mappings use online migration also?\n\nWithout online migration of the instance mappings isn\u0027t it possible that the API service could be down for some time while the instance mappings table is populated?\n\nIf there was a \u0027default\u0027 cell id then the instance mappings could be online migrated or updated also as instances not found in the instance mapping could be looked up in the \u0027default\u0027 cell and migrated.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"b109ab62a8a8fa1f06da20830bb3539b8794fdaa","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":204,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":205,"context_line":"  part of normal operation."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"* Sit back and enjoy your new cells deployment."},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_80cd9667","line":205,"in_reply_to":"da6ed579_2480b4f4","updated":"2016-01-15 16:52:10.000000000","message":"+1 for online or no/little downtime migration.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"97e417fead44ba429256ba134a3545c7772492b0","unresolved":false,"context_lines":[{"line_number":202,"context_line":""},{"line_number":203,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":204,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":205,"context_line":"  part of normal operation."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"* Sit back and enjoy your new cells deployment."},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_c8e97080","line":205,"in_reply_to":"da6ed579_80cd9667","updated":"2016-01-15 18:25:54.000000000","message":"This brings up a good point.  I wrote this with the assumption that there is only one cell, because there will be single cell support for a bit before getting to multiple cell support.  So there will be an implicit default cell that can be used for online migration of the instance_mappings.  I can clarify this.\n\nThere will also likely be a tool provided so that it can be done all at once, but as long as there\u0027s a default cell it can fallback to if the instance_mapping doesn\u0027t exist this tool can run in the background without taking down the API.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"9141df58321f1ef50e8e6a8ba19b0b16a31ff58f","unresolved":false,"context_lines":[{"line_number":204,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":205,"context_line":"  part of normal operation."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"* Sit back and enjoy your new cells deployment."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"From V1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_a4b904ce","line":207,"range":{"start_line":207,"start_character":0,"end_line":207,"end_character":47},"updated":"2016-01-14 20:01:10.000000000","message":"Yay!","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"12187d655c706130edd8b02f7788233a574462c5","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"* Create a new nova_api database and configure nova-api to connect to it."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Create a new nova database and configure it as cell0."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"* Configure existing v1 parent cell database and message queue to be a new"},{"line_number":228,"context_line":"  cell."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_d2b7db82","line":225,"range":{"start_line":225,"start_character":29,"end_line":225,"end_character":54},"updated":"2016-02-18 20:49:47.000000000","message":"Does this actually mean, you configure nova-api to use this database (via connection URI to the DB) as cell0 so it can send zombies there?","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":9060,"name":"Mike Dorman","email":"dorm@dorm.org","username":"gd-mdorman"},"change_message_id":"b109ab62a8a8fa1f06da20830bb3539b8794fdaa","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"This is where things differ"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"* For each existing v1 cell a new v2 cell will be created.  This is primarily a"},{"line_number":237,"context_line":"  configuration task, letting nova-api know where the cell database and message"},{"line_number":238,"context_line":"  queue are and providing a name.  Run a tool that will set up instance"},{"line_number":239,"context_line":"  mappings for existing instances in each cell.  It will likely be best to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_0092064c","line":236,"updated":"2016-01-15 16:52:10.000000000","message":"Maybe reword something like \"The deployer will need to create a new v2 cell for each existing v1 cell.\"  When I first read this I thought it meant new v2 cells were being created automatically behind the scenes.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"97e417fead44ba429256ba134a3545c7772492b0","unresolved":false,"context_lines":[{"line_number":233,"context_line":""},{"line_number":234,"context_line":"This is where things differ"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"* For each existing v1 cell a new v2 cell will be created.  This is primarily a"},{"line_number":237,"context_line":"  configuration task, letting nova-api know where the cell database and message"},{"line_number":238,"context_line":"  queue are and providing a name.  Run a tool that will set up instance"},{"line_number":239,"context_line":"  mappings for existing instances in each cell.  It will likely be best to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da6ed579_a858bc8a","line":236,"in_reply_to":"da6ed579_0092064c","updated":"2016-01-15 18:25:54.000000000","message":"Will do.","commit_id":"79774e5e3a467e707dd593b55f8496ef01f303f9"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"56792c6ee73bfdf234d232616f89463f528a2bcf","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    nova-manage cell_v2 map_cell0 \\"},{"line_number":205,"context_line":"            --database_connection\u003d`database_connection_url $NOVA_CELL0_DB"},{"line_number":206,"context_line":"    nova-manage db sync"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"* Configure existing nova database and message queue to be a new cell. That"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_705ad250","line":206,"updated":"2016-04-05 20:00:58.000000000","message":"Yep, this is currently what the proposed cell0 patches do.","commit_id":"7679e7f51ffd6014c6a4f840f2ce0fe13cf44fee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ac0cab6fbb73c0134f61ca7246794714f0aa1ad7","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    nova-manage cell_v2 map_cell0 \\"},{"line_number":205,"context_line":"            --database_connection\u003d`database_connection_url $NOVA_CELL0_DB"},{"line_number":206,"context_line":"    nova-manage db sync"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"* Configure existing nova database and message queue to be a new cell. That"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_4fea7a10","line":206,"in_reply_to":"9a061dce_705ad250","updated":"2016-04-06 07:58:28.000000000","message":"Yep, I reviewed your patches...","commit_id":"7679e7f51ffd6014c6a4f840f2ce0fe13cf44fee"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"56792c6ee73bfdf234d232616f89463f528a2bcf","unresolved":false,"context_lines":[{"line_number":210,"context_line":"  will automatically assign the existing hosts onto that new cell::"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    nova-manage cell_v2 map_cell_and_hosts --transport_url \u003ctransport_url\u003e"},{"line_number":213,"context_line":"            --config-file \u003cnova.conf\u003e"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Run tool to set up instance mappings for existing instances in the new cell."},{"line_number":216,"context_line":"  Note that this will only need to be done to bootstrap an existing deployment"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_9035e6f8","line":213,"updated":"2016-04-05 20:00:58.000000000","message":"This command has already been implemented.","commit_id":"7679e7f51ffd6014c6a4f840f2ce0fe13cf44fee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ac0cab6fbb73c0134f61ca7246794714f0aa1ad7","unresolved":false,"context_lines":[{"line_number":210,"context_line":"  will automatically assign the existing hosts onto that new cell::"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    nova-manage cell_v2 map_cell_and_hosts --transport_url \u003ctransport_url\u003e"},{"line_number":213,"context_line":"            --config-file \u003cnova.conf\u003e"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Run tool to set up instance mappings for existing instances in the new cell."},{"line_number":216,"context_line":"  Note that this will only need to be done to bootstrap an existing deployment"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_0f92429e","line":213,"in_reply_to":"9a061dce_9035e6f8","updated":"2016-04-06 07:58:28.000000000","message":"Sure, my \"NOT YET IMPLEMENTED\" comment was related to cell0.","commit_id":"7679e7f51ffd6014c6a4f840f2ce0fe13cf44fee"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"56792c6ee73bfdf234d232616f89463f528a2bcf","unresolved":false,"context_lines":[{"line_number":216,"context_line":"  Note that this will only need to be done to bootstrap an existing deployment"},{"line_number":217,"context_line":"  and after that the tool will be unnecessary::"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    nova-manage cell_v2 map_instances --config-file \u003cnova.conf\u003e"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":222,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_1009d631","line":219,"updated":"2016-04-05 20:00:58.000000000","message":"This command has also been implemented, although might need some work for limits. alaski, dansmith?","commit_id":"7679e7f51ffd6014c6a4f840f2ce0fe13cf44fee"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"56792c6ee73bfdf234d232616f89463f528a2bcf","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":222,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":223,"context_line":"  part of normal operation."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Sit back and enjoy your new cells deployment."},{"line_number":226,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_8475ab99","line":223,"updated":"2016-04-05 20:00:58.000000000","message":"There are going to be a-lot of these. What should the commands look like? I think dansmith is putting the flavor migration inside the online data migrations. (nova-manage db online-data-migrations). Should all of the migrations use this?","commit_id":"7679e7f51ffd6014c6a4f840f2ce0fe13cf44fee"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ac0cab6fbb73c0134f61ca7246794714f0aa1ad7","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":222,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":223,"context_line":"  part of normal operation."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Sit back and enjoy your new cells deployment."},{"line_number":226,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_cfde8a6c","line":223,"in_reply_to":"9a061dce_242c9faa","updated":"2016-04-06 07:58:28.000000000","message":"There is already only one call for all the needed online migrations. I can provide it here.","commit_id":"7679e7f51ffd6014c6a4f840f2ce0fe13cf44fee"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"b8afa18a79d517f5e7ae1d4189718c48a5a44cd2","unresolved":false,"context_lines":[{"line_number":220,"context_line":""},{"line_number":221,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":222,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":223,"context_line":"  part of normal operation."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Sit back and enjoy your new cells deployment."},{"line_number":226,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_242c9faa","line":223,"in_reply_to":"9a061dce_8475ab99","updated":"2016-04-05 20:19:48.000000000","message":"Whenever possible, yes. As you\u0027ve seen people have expressed desire to have as few commands as possible to run in the simple cases. So unless there\u0027s a compelling technical need to split it out I think we should leverage online data migrations.","commit_id":"7679e7f51ffd6014c6a4f840f2ce0fe13cf44fee"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"From no cells"},{"line_number":166,"context_line":"-------------"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"This is the starting place for most current deployments.  In case you arrived"},{"line_number":169,"context_line":"here by skipping the description of cells v2 and just want to know what you\u0027ll"},{"line_number":170,"context_line":"need to let me lay out a few basics you should understand about cells v2:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_5057eecd","line":167,"updated":"2016-07-05 13:59:30.000000000","message":"Set clear expectations? Something like:\n\nFor the \"no cells\" deployer, the following will upgrade the deployment to one with a single v2 cell.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":169,"context_line":"here by skipping the description of cells v2 and just want to know what you\u0027ll"},{"line_number":170,"context_line":"need to let me lay out a few basics you should understand about cells v2:"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"* nova-api will live outside of all cells and it\u0027s primary purpose becomes a"},{"line_number":173,"context_line":"  router for requests.  It will have a new nova_api database containing"},{"line_number":174,"context_line":"  information about cells, how to connect to them, and which instances are in"},{"line_number":175,"context_line":"  which cell."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_8d19418b","line":172,"updated":"2016-07-05 13:59:30.000000000","message":"s/it\u0027s/its","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7b2b1561d4f75ca4ddc088c80dd405fe1fe04a43","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* nova-scheduler will also live outside of all cells. For the moment, the"},{"line_number":178,"context_line":"  scheduler will continue to act the same by providing a list of hosts, but"},{"line_number":179,"context_line":"  we\u0027re not against thinking about redesigning it for the next episodes."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"* Everything else in a current deployment becomes the first cell.  Each"},{"line_number":182,"context_line":"  additional cell will be a copy of that infrastructure: database, message"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_eaab8bd4","line":179,"range":{"start_line":179,"start_character":50,"end_line":179,"end_character":71},"updated":"2016-07-05 12:38:16.000000000","message":"Nit: in the future?","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7b2b1561d4f75ca4ddc088c80dd405fe1fe04a43","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"* Everything else in a current deployment becomes the first cell.  Each"},{"line_number":182,"context_line":"  additional cell will be a copy of that infrastructure: database, message"},{"line_number":183,"context_line":"  queue, conductor, computes.  It has not been determined how the console"},{"line_number":184,"context_line":"  services will need to be deployed."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* There will be a special cell0 containing data on instances that could not be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_8aeac70d","line":183,"range":{"start_line":183,"start_character":38,"end_line":183,"end_character":41},"updated":"2016-07-05 12:38:16.000000000","message":"Nit: not yet?","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":187,"context_line":"  scheduled to an active cell.  Cell0 is essentially just a database to park"},{"line_number":188,"context_line":"  these instances, it will have no services attached to it (no compute nodes,"},{"line_number":189,"context_line":"  no conductor, no scheduler etc.). Given that in cells v2 world, every"},{"line_number":190,"context_line":"  instance is having a cell, that\u0027s why we prefer to have this cell0 concept,"},{"line_number":191,"context_line":"  meaning the instance exists in database, but is not attached to a real host."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Given the above info the rough plan for upgrading to cells is the following:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_f0ab7ad4","line":190,"updated":"2016-07-05 13:59:30.000000000","message":"every instance is assigned a cell?","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Given the above info the rough plan for upgrading to cells is the following:"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Create new nova_api database and configure nova-api to connect to it::"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    nova-manage api_db sync"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_b080d247","line":195,"updated":"2016-07-05 13:59:30.000000000","message":"should already be done just via running mitaka, no?","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Given the above info the rough plan for upgrading to cells is the following:"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"* Create new nova_api database and configure nova-api to connect to it::"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    nova-manage api_db sync"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_2df2bb6f","line":195,"in_reply_to":"1aa78d24_b080d247","updated":"2016-07-05 18:05:09.000000000","message":"Yes. This can be updated with the current state of things. At the time this was written I don\u0027t think the api db was required. Now that request specs are written there it\u0027s required.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    nova-manage cell_v2 map_cell_and_hosts --transport_url \u003ctransport_url\u003e"},{"line_number":210,"context_line":"            --config-file \u003cnova.conf\u003e"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"* Run tool to set up instance mappings for existing instances in the new cell."},{"line_number":213,"context_line":"  Note that this will only need to be done to bootstrap an existing deployment"},{"line_number":214,"context_line":"  and after that the tool will be unnecessary::"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_d0b59eee","line":212,"updated":"2016-07-05 13:59:30.000000000","message":"How aggressive is this going to be with slamming the existing DB? :)\n\nIt might need a \"nice\" factor.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    nova-manage cell_v2 map_cell_and_hosts --transport_url \u003ctransport_url\u003e"},{"line_number":210,"context_line":"            --config-file \u003cnova.conf\u003e"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"* Run tool to set up instance mappings for existing instances in the new cell."},{"line_number":213,"context_line":"  Note that this will only need to be done to bootstrap an existing deployment"},{"line_number":214,"context_line":"  and after that the tool will be unnecessary::"},{"line_number":215,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_2d991b20","line":212,"in_reply_to":"1aa78d24_d0b59eee","updated":"2016-07-05 18:05:09.000000000","message":"The current plan was to provide a \u0027limit\u0027 parameter like a lot of similar commands have. We could just add a throttle though for someone who wants everything migrated, slowly.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    nova-manage cell_v2 map_instances --config-file \u003cnova.conf\u003e"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":219,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":220,"context_line":"  part of normal operation::"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_70e14ad0","line":218,"updated":"2016-07-05 13:59:30.000000000","message":"Does it matter whether this happens before or after the instance mappings above?  In other words, will operations related to flavors and these other tables fail if an instance is migrated first?","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    nova-manage cell_v2 map_instances --config-file \u003cnova.conf\u003e"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"* Migrate flavors and other global resources out of new cell.  There will be"},{"line_number":219,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":220,"context_line":"  part of normal operation::"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_ad5a2b4e","line":218,"in_reply_to":"1aa78d24_70e14ad0","updated":"2016-07-05 18:05:09.000000000","message":"Ordering does not matter for migrations. Non instance migrations from cell db to api db can happen at any point. Instance migrations can happen after cell_mappings are setup and hosts are mapped. What matters most is that all of these happen before some undetermined cutoff point.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7b2b1561d4f75ca4ddc088c80dd405fe1fe04a43","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    nova-manage db online_data_migrations [--max-count \u003cmax_count\u003e]"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* Sit back and enjoy your new cells deployment."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"From V1"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_2a52b3dd","line":224,"updated":"2016-07-05 12:38:16.000000000","message":"We might want to be explicit about how much or little downtime we will have during this transition.\n\nI am assuming there is zero downtime required here?\n\nWhen is this likely to be requited, on upgrade to newton from mitaka?","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    nova-manage db online_data_migrations [--max-count \u003cmax_count\u003e]"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* Sit back and enjoy your new cells deployment."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"From V1"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_8d3c8fe3","line":224,"in_reply_to":"1aa78d24_2a52b3dd","updated":"2016-07-05 18:05:09.000000000","message":"Yep. At this time there is no migration that requires downtime.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            --database_connection\u003d`database_connection_url $NOVA_CELL0_DB"},{"line_number":251,"context_line":"    nova-manage db sync"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"* Configure existing v1 parent cell database and message queue to be a new"},{"line_number":254,"context_line":"  cell::"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    nova-manage cell_v2 map_cell_and_hosts --name \u003ccell_name\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_10dd66e0","line":253,"updated":"2016-07-05 13:59:30.000000000","message":"Is this just to get the online data migrations below to work?  Obviously we wouldn\u0027t want to run all of our instances in one cell.\n\nI don\u0027t understand quite what this is for. :)","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            --database_connection\u003d`database_connection_url $NOVA_CELL0_DB"},{"line_number":251,"context_line":"    nova-manage db sync"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"* Configure existing v1 parent cell database and message queue to be a new"},{"line_number":254,"context_line":"  cell::"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    nova-manage cell_v2 map_cell_and_hosts --name \u003ccell_name\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_480615cf","line":253,"in_reply_to":"1aa78d24_10dd66e0","updated":"2016-07-05 18:05:09.000000000","message":"This is not worded clearly. It\u0027s better to think of the v1 parent cell growing a v2 API layer above it. So to start this new v2 API layer will have all instances mapped to the v1 parent cell. V2 will think all instances are in one v2 cell when they\u0027re actually in multiple v1 cells. Then each individual v1 cell will be \"migrated\" up to be a new v2 cell.\n\nIt\u0027s really just creating and moving mappings around.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":260,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":261,"context_line":"  part of normal operation::"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    nova-manage db online_data_migrations [--max-count \u003cmax_count\u003e]"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"This is where things differ"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_1bdd87e0","line":263,"updated":"2016-07-05 13:59:30.000000000","message":"To be clear, this is a nova-manage to migrate data from the old cellsv1 global db to the new api db?","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":260,"context_line":"  automated tools provided for these migrations if they\u0027re not done online as"},{"line_number":261,"context_line":"  part of normal operation::"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    nova-manage db online_data_migrations [--max-count \u003cmax_count\u003e]"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"This is where things differ"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_c8c5e58e","line":263,"in_reply_to":"1aa78d24_1bdd87e0","updated":"2016-07-05 18:05:09.000000000","message":"yes.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    nova-manage db online_data_migrations [--max-count \u003cmax_count\u003e]"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"This is where things differ"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"* For each existing v1 cell a new v2 cell will have to be created. This is"},{"line_number":268,"context_line":"  primarily a configuration task, letting nova-api know where the cell database"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_5bf42f85","line":265,"updated":"2016-07-05 13:59:30.000000000","message":"Deployer should also evaluate their scheduler rules as they are transitioning from two-level cells v1 scheduling to this new flat model of scheduling.  I haven\u0027t actually looked to see if there are equivalents for each cell filter/weight.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    nova-manage db online_data_migrations [--max-count \u003cmax_count\u003e]"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"This is where things differ"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"* For each existing v1 cell a new v2 cell will have to be created. This is"},{"line_number":268,"context_line":"  primarily a configuration task, letting nova-api know where the cell database"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_0836cde5","line":265,"in_reply_to":"1aa78d24_5bf42f85","updated":"2016-07-05 18:05:09.000000000","message":"There is not full equivalence between v1 and v2 scheduling yet. A major source of the difference is the elimination of the cell construct within scheduling. In order to do things like cells with flavor classes or different hypervisors deployers will need to rely on things like host aggregates or some of the current proposals/efforts around resource groups and sharded schedulers.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"This is where things differ"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"* For each existing v1 cell a new v2 cell will have to be created. This is"},{"line_number":268,"context_line":"  primarily a configuration task, letting nova-api know where the cell database"},{"line_number":269,"context_line":"  and message queue are and providing a name.  Run a tool that will set up"},{"line_number":270,"context_line":"  instance mappings for existing instances in each cell.  It will likely be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_3bbb2310","line":267,"updated":"2016-07-05 13:59:30.000000000","message":"OK, once the instances are mapped, scheduler will begin to route these instances based on resources that map to its v2 cell, right?\n\nIt would be nice to have a lever (dirt simple cells filter) to disable scheduling to a v1 cell prior to doing this mapping, just to eliminate some oddities during the upgrade.\n\nIn other words,\n1) stop scheduling to v1 cell\n2) observe scheduler in v1 cell drain to 0 requests\n3) stop scheduler in v1 cell (no longer need it)\n4) map instances to v2 cell\n5) begin scheduling via v2 mechanisms involving resource pools, etc","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"This is where things differ"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"* For each existing v1 cell a new v2 cell will have to be created. This is"},{"line_number":268,"context_line":"  primarily a configuration task, letting nova-api know where the cell database"},{"line_number":269,"context_line":"  and message queue are and providing a name.  Run a tool that will set up"},{"line_number":270,"context_line":"  instance mappings for existing instances in each cell.  It will likely be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_a8ab39d5","line":267,"in_reply_to":"1aa78d24_3bbb2310","updated":"2016-07-05 18:05:09.000000000","message":"Definitely, that would be very useful. I know Rackspace has a filter to do this but I haven\u0027t checked in a while to see if there\u0027s something upstream to disable a v1 cell for scheduling.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":272,"context_line":"  time.  At the end of this step all Nova requests should be going directly"},{"line_number":273,"context_line":"  between nova-api and the respective cells and the nova-cells services will be"},{"line_number":274,"context_line":"  unused::"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    nova-manage cell_v2 map_instances --cell_uuid \u003ccell_uuid\u003e"},{"line_number":277,"context_line":"            --config-file \u003ccell_nova.conf\u003e"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_5b954fdc","line":275,"updated":"2016-07-05 13:59:30.000000000","message":"Again, for clarity, we\u0027re running the following against every existing cells v1 db?","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":272,"context_line":"  time.  At the end of this step all Nova requests should be going directly"},{"line_number":273,"context_line":"  between nova-api and the respective cells and the nova-cells services will be"},{"line_number":274,"context_line":"  unused::"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    nova-manage cell_v2 map_instances --cell_uuid \u003ccell_uuid\u003e"},{"line_number":277,"context_line":"            --config-file \u003ccell_nova.conf\u003e"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_28862965","line":275,"in_reply_to":"1aa78d24_5b954fdc","updated":"2016-07-05 18:05:09.000000000","message":"Yes.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7b2b1561d4f75ca4ddc088c80dd405fe1fe04a43","unresolved":false,"context_lines":[{"line_number":274,"context_line":"  unused::"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    nova-manage cell_v2 map_instances --cell_uuid \u003ccell_uuid\u003e"},{"line_number":277,"context_line":"            --config-file \u003ccell_nova.conf\u003e"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"* Shut down and remove nova-cells services, and remove old v1 parent cell"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_aab863e6","line":277,"updated":"2016-07-05 12:38:16.000000000","message":"How much downtime will we have here? Zero?\n\nOr do we need to disable a cells to stop all new builds before starting a migration? Or is it worse than that.\n\nI guess I worry about the old global cell updates being lost when the old child cell becomes a new cells v2 cell? Or is that an unjustified worry?","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":274,"context_line":"  unused::"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    nova-manage cell_v2 map_instances --cell_uuid \u003ccell_uuid\u003e"},{"line_number":277,"context_line":"            --config-file \u003ccell_nova.conf\u003e"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"* Shut down and remove nova-cells services, and remove old v1 parent cell"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_28ed8925","line":277,"in_reply_to":"1aa78d24_3655fa1c","updated":"2016-07-05 18:05:09.000000000","message":"Yes, zero downtime is expected. And Brian is correct on the rest.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":274,"context_line":"  unused::"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    nova-manage cell_v2 map_instances --cell_uuid \u003ccell_uuid\u003e"},{"line_number":277,"context_line":"            --config-file \u003ccell_nova.conf\u003e"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"* Shut down and remove nova-cells services, and remove old v1 parent cell"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_3655fa1c","line":277,"in_reply_to":"1aa78d24_aab863e6","updated":"2016-07-05 13:59:30.000000000","message":"Yeah this definitely can be run online.\n\nThe old global cell updates are basically irrelevant since the source of truth is the child cell and that is being carried along with it here.  v2 doesn\u0027t have a \"copy-data-around\" problem so I think we\u0027re safe.\n\nI do think we need to disable a cell prior to all this migration business.  See comment above.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58391d19fa0bd91431f4ab93fccc2aeaa3db5ea3","unresolved":false,"context_lines":[{"line_number":277,"context_line":"            --config-file \u003ccell_nova.conf\u003e"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"* Shut down and remove nova-cells services, and remove old v1 parent cell"},{"line_number":281,"context_line":"  database as it should be unused at this point."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"* Sit back and enjoy having security groups and host aggregates with cells."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_1bd0e71e","line":280,"updated":"2016-07-05 13:59:30.000000000","message":"schedulers in v1 cells can be removed at this point also","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"0d10c515748499e0ef65fbd59e0d4583e713e567","unresolved":false,"context_lines":[{"line_number":277,"context_line":"            --config-file \u003ccell_nova.conf\u003e"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"* Shut down and remove nova-cells services, and remove old v1 parent cell"},{"line_number":281,"context_line":"  database as it should be unused at this point."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"* Sit back and enjoy having security groups and host aggregates with cells."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1aa78d24_68f791f5","line":280,"in_reply_to":"1aa78d24_1bd0e71e","updated":"2016-07-05 18:05:09.000000000","message":"Good point, will add.","commit_id":"a251e92743c71b0aaaf7fa2c7465d432ca20dad6"}]}
