成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LXD 2.0 系列(九):實時遷移

系統 Linux 系統運維
這是 LXD 2.0 系列介紹文章的第九篇。LXD 2.0 中的有一個盡管是實驗性質的但非常令人興奮的功能,那就是支持容器檢查點和恢復。簡單地說,檢查點/恢復意味著正在運行的容器狀態可以被序列化到磁盤,要么可以作為同一主機上的有狀態快照,要么放到另一主機上相當于實時遷移。

[[184859]]

這是 LXD 2.0 系列介紹文章的第九篇。

  1. LXD 入門
  2. 安裝與配置
  3. 你的第一個 LXD 容器
  4. 資源控制
  5. 鏡像管理
  6. 遠程主機及容器遷移
  7. LXD 中的 Docker
  8. LXD 中的 LXD

介紹

LXD 2.0 中的有一個盡管是實驗性質的但非常令人興奮的功能,那就是支持容器檢查點和恢復。

簡單地說,檢查點/恢復意味著正在運行的容器狀態可以被序列化到磁盤,要么可以作為同一主機上的有狀態快照,要么放到另一主機上相當于實時遷移。

要求

要使用容器實時遷移和有狀態快照,你需要以下條件:

  • 一個非常新的 Linux 內核,4.4 或更高版本。
  • CRIU 2.0,可能需要一些 cherry-pick 的提交,具體取決于你確切的內核配置。
  • 直接在主機上運行 LXD。 不能在容器嵌套下使用這些功能。
  • 對于遷移,目標主機必須至少實現源主機的指令集,目標主機內核必須至少提供與源主機相同的系統調用,并且在源主機上掛載的任何內核文件系統也必須可掛載到目標主機上。

Ubuntu 16.04 LTS 已經提供了所有需要的依賴,在這種情況下,您只需要安裝 CRIU 本身:

 

  1. apt install criu 

使用 CRIU

有狀態快照

一個普通的快照看上去像這樣:

  1. stgraber@dakara:~$ lxc snapshot c1 first 
  2. stgraber@dakara:~$ lxc info c1 | grep first 
  3.  first (taken at 2016/04/25 19:35 UTC) (stateless) 

一個有狀態快照看上去像這樣:

  1. stgraber@dakara:~$ lxc snapshot c1 second --stateful 
  2. stgraber@dakara:~$ lxc info c1 | grep second 
  3.  second (taken at 2016/04/25 19:36 UTC) (stateful) 

這意味著所有容器運行時狀態都被序列化到磁盤并且作為了快照的一部分??梢韵衲氵€原無狀態快照那樣還原一個有狀態快照:

  1. stgraber@dakara:~$ lxc restore c1 second 
  2. stgraber@dakara:~$ 

有狀態快照的停止/啟動

比方說你由于升級內核或者其他類似的維護而需要重啟機器。與其等待重啟后啟動所有的容器,你可以:

  1. stgraber@dakara:~$ lxc stop c1 --stateful 

容器狀態將會寫入到磁盤,會在下次啟動時讀取。

你甚至可以看到像下面那樣的狀態:

  1. root@dakara:~# tree /var/lib/lxd/containers/c1/rootfs/state/ 
  2. /var/lib/lxd/containers/c1/rootfs/state/ 
  3. ├── cgroup.img 
  4. ├── core-101.img 
  5. ├── core-102.img 
  6. ├── core-107.img 
  7. ├── core-108.img 
  8. ├── core-109.img 
  9. ├── core-113.img 
  10. ├── core-114.img 
  11. ├── core-122.img 
  12. ├── core-125.img 
  13. ├── core-126.img 
  14. ├── core-127.img 
  15. ├── core-183.img 
  16. ├── core-1.img 
  17. ├── core-245.img 
  18. ├── core-246.img 
  19. ├── core-50.img 
  20. ├── core-52.img 
  21. ├── core-95.img 
  22. ├── core-96.img 
  23. ├── core-97.img 
  24. ├── core-98.img 
  25. ├── dump.log 
  26. ├── eventfd.img 
  27. ├── eventpoll.img 
  28. ├── fdinfo-10.img 
  29. ├── fdinfo-11.img 
  30. ├── fdinfo-12.img 
  31. ├── fdinfo-13.img 
  32. ├── fdinfo-14.img 
  33. ├── fdinfo-2.img 
  34. ├── fdinfo-3.img 
  35. ├── fdinfo-4.img 
  36. ├── fdinfo-5.img 
  37. ├── fdinfo-6.img 
  38. ├── fdinfo-7.img 
  39. ├── fdinfo-8.img 
  40. ├── fdinfo-9.img 
  41. ├── fifo-data.img 
  42. ├── fifo.img 
  43. ├── filelocks.img 
  44. ├── fs-101.img 
  45. ├── fs-113.img 
  46. ├── fs-122.img 
  47. ├── fs-183.img 
  48. ├── fs-1.img 
  49. ├── fs-245.img 
  50. ├── fs-246.img 
  51. ├── fs-50.img 
  52. ├── fs-52.img 
  53. ├── fs-95.img 
  54. ├── fs-96.img 
  55. ├── fs-97.img 
  56. ├── fs-98.img 
  57. ├── ids-101.img 
  58. ├── ids-113.img 
  59. ├── ids-122.img 
  60. ├── ids-183.img 
  61. ├── ids-1.img 
  62. ├── ids-245.img 
  63. ├── ids-246.img 
  64. ├── ids-50.img 
  65. ├── ids-52.img 
  66. ├── ids-95.img 
  67. ├── ids-96.img 
  68. ├── ids-97.img 
  69. ├── ids-98.img 
  70. ├── ifaddr-9.img 
  71. ├── inetsk.img 
  72. ├── inotify.img 
  73. ├── inventory.img 
  74. ├── ip6tables-9.img 
  75. ├── ipcns-var-10.img 
  76. ├── iptables-9.img 
  77. ├── mm-101.img 
  78. ├── mm-113.img 
  79. ├── mm-122.img 
  80. ├── mm-183.img 
  81. ├── mm-1.img 
  82. ├── mm-245.img 
  83. ├── mm-246.img 
  84. ├── mm-50.img 
  85. ├── mm-52.img 
  86. ├── mm-95.img 
  87. ├── mm-96.img 
  88. ├── mm-97.img 
  89. ├── mm-98.img 
  90. ├── mountpoints-12.img 
  91. ├── netdev-9.img 
  92. ├── netlinksk.img 
  93. ├── netns-9.img 
  94. ├── netns-ct-9.img 
  95. ├── netns-exp-9.img 
  96. ├── packetsk.img 
  97. ├── pagemap-101.img 
  98. ├── pagemap-113.img 
  99. ├── pagemap-122.img 
  100. ├── pagemap-183.img 
  101. ├── pagemap-1.img 
  102. ├── pagemap-245.img 
  103. ├── pagemap-246.img 
  104. ├── pagemap-50.img 
  105. ├── pagemap-52.img 
  106. ├── pagemap-95.img 
  107. ├── pagemap-96.img 
  108. ├── pagemap-97.img 
  109. ├── pagemap-98.img 
  110. ├── pages-10.img 
  111. ├── pages-11.img 
  112. ├── pages-12.img 
  113. ├── pages-13.img 
  114. ├── pages-1.img 
  115. ├── pages-2.img 
  116. ├── pages-3.img 
  117. ├── pages-4.img 
  118. ├── pages-5.img 
  119. ├── pages-6.img 
  120. ├── pages-7.img 
  121. ├── pages-8.img 
  122. ├── pages-9.img 
  123. ├── pipes-data.img 
  124. ├── pipes.img 
  125. ├── pstree.img 
  126. ├── reg-files.img 
  127. ├── remap-fpath.img 
  128. ├── route6-9.img 
  129. ├── route-9.img 
  130. ├── rule-9.img 
  131. ├── seccomp.img 
  132. ├── sigacts-101.img 
  133. ├── sigacts-113.img 
  134. ├── sigacts-122.img 
  135. ├── sigacts-183.img 
  136. ├── sigacts-1.img 
  137. ├── sigacts-245.img 
  138. ├── sigacts-246.img 
  139. ├── sigacts-50.img 
  140. ├── sigacts-52.img 
  141. ├── sigacts-95.img 
  142. ├── sigacts-96.img 
  143. ├── sigacts-97.img 
  144. ├── sigacts-98.img 
  145. ├── signalfd.img 
  146. ├── stats-dump 
  147. ├── timerfd.img 
  148. ├── tmpfs-dev-104.tar.gz.img 
  149. ├── tmpfs-dev-109.tar.gz.img 
  150. ├── tmpfs-dev-110.tar.gz.img 
  151. ├── tmpfs-dev-112.tar.gz.img 
  152. ├── tmpfs-dev-114.tar.gz.img 
  153. ├── tty.info 
  154. ├── unixsk.img 
  155. ├── userns-13.img 
  156. └── utsns-11.img 
  157. 0 directories, 154 files 

還原容器也很簡單:

  1. stgraber@dakara:~$ lxc start c1 

實時遷移

實時遷移基本上與上面的有狀態快照的停止/啟動相同,除了容器目錄和配置被移動到另一臺機器上。

  1. stgraber@dakara:~$ lxc list c1 
  2. +------+---------+-----------------------+----------------------------------------------+------------+-----------+ 
  3. NAME |  STATE  |          IPV4         |                     IPV6                     |    TYPE    | SNAPSHOTS | 
  4. +------+---------+-----------------------+----------------------------------------------+------------+-----------+ 
  5. | c1   | RUNNING | 10.178.150.197 (eth0) | 2001:470:b368:4242:216:3eff:fe19:27b0 (eth0) | PERSISTENT | 2         | 
  6. +------+---------+-----------------------+----------------------------------------------+------------+-----------+ 
  7. stgraber@dakara:~$ lxc list s-tollana: 
  8. +------+-------+------+------+------+-----------+ 
  9. NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | 
  10. +------+-------+------+------+------+-----------+ 
  11. stgraber@dakara:~$ lxc move c1 s-tollana: 
  12. stgraber@dakara:~$ lxc list c1 
  13. +------+-------+------+------+------+-----------+ 
  14. NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | 
  15. +------+-------+------+------+------+-----------+ 
  16. stgraber@dakara:~$ lxc list s-tollana: 
  17. +------+---------+-----------------------+----------------------------------------------+------------+-----------+ 
  18. NAME |  STATE  |          IPV4         |                     IPV6                     |    TYPE    | SNAPSHOTS | 
  19. +------+---------+-----------------------+----------------------------------------------+------------+-----------+ 
  20. | c1   | RUNNING | 10.178.150.197 (eth0) | 2001:470:b368:4242:216:3eff:fe19:27b0 (eth0) | PERSISTENT | 2         | 
  21. +------+---------+-----------------------+----------------------------------------------+------------+-----------+ 

限制

正如我之前說的,容器的檢查點/恢復還是非常新的功能,我們還在努力地開發這個功能、修復已知的問題。我們確實需要更多的人來嘗試這個功能,并給我們反饋,但我不建議在生產中使用這個功能。

我們跟蹤的問題列表在 Launchpad上。

我們估計在帶有 CRIU 的 Ubuntu 16.04 上帶有幾個服務的基本的 Ubuntu 容器能夠正常工作。然而在更復雜的容器、使用了設備直通、復雜的網絡服務或特殊的存儲配置下可能會失敗。

要是有問題,CRIU 會盡可能地在轉儲時失敗,而不是在恢復時。在這種情況下,源容器將繼續運行,快照或遷移將會失敗,并生成一個日志文件用于調試。

在極少數情況下,CRIU 無法恢復容器,在這種情況下,源容器仍然存在但將被停止,并且必須手動重新啟動。

發送 bug 報告

我們正在跟蹤 Launchpad 上關于 CRIU Ubuntu 軟件包的檢查點/恢復相關的錯誤。大多數修復 bug 工作是在上游的 CRIU 或 Linux 內核上進行,但是這種方式我們更容易跟蹤。

要提交新的 bug 報告,請看這里。

請務必包括:

  • 你運行的命令和顯示給你的錯誤消息
  • lxc info 的輸出(*)
  • lxc info <container name>的輸出
  • lxc config show -expanded <container name> 的輸出
  • dmesg(*)的輸出
  • /proc/self/mountinfo 的輸出(*)
  • lxc exec <container name> - cat /proc/self/mountinfo 的輸出
  • uname -a(*)的輸出
  • /var/log/lxd.log(*)的內容
  • /etc/default/lxd-bridge(*)的內容
  • /var/log/lxd/<container name>/ 的 tarball(*)

如果報告遷移錯誤,而不是狀態快照或有狀態停止的錯誤,請將上面所有含有(*)標記的源與目標主機的信息發來。

額外信息

CRIU 的網站在: https://criu.org

LXD 的主站在: https://linuxcontainers.org/lxd

LXD 的 GitHub 倉庫: https://github.com/lxc/lxd

LXD 的郵件列表: https://lists.linuxcontainers.org

LXD 的 IRC 頻道: #lxcontainers on irc.freenode.net

作者簡介:

我是 Stéphane Graber。我是 LXC 和 LXD 項目的領導者,目前在加拿大魁北克蒙特利爾的家所在的Canonical 有限公司擔任 LXD 的技術主管。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2016-07-29 14:12:21

2017-03-06 14:00:22

LXD 2.0LXDLinux

2017-03-08 10:40:14

LXD 2.0JujuLinux

2017-03-08 18:00:10

LXD 2.0LinuxOpenStack

2017-02-05 14:52:42

2017-02-27 19:27:52

LXDDockerLinux

2017-01-12 15:37:34

LinuxLXD 2.0鏡像管理

2016-12-29 11:01:03

LinuxLXD 2.0資源控制

2017-03-09 16:32:03

LXD 2.0Linux調試

2016-08-22 21:41:37

LXDLinux容器管理器

2016-08-24 15:12:41

LXDLinux容器

2023-08-07 14:28:42

技術遷移

2013-11-25 09:37:03

虛擬機實時遷移

2010-06-30 09:05:02

Hyper-V遷移

2018-03-26 20:12:42

深度學習

2023-08-18 12:17:03

Linode實時遷移云計算

2015-08-24 14:37:01

ALEIYE 2.0實時大數據RET功能

2017-11-08 15:23:57

Java GC優化jvm

2024-10-25 10:00:00

云服務計算

2015-04-24 10:57:22

Ubuntu 15.0Ubuntu
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本天天操 | 国产精品久久一区二区三区 | 免费国产黄网站在线观看视频 | 久久婷婷国产麻豆91 | 91亚洲精品久久久电影 | 亚洲国产精品va在线看黑人 | 国产第二页 | 97精品一区二区 | 国产精品一区一区 | 国产激情一区二区三区 | 久久在线免费 | 久久一区二区精品 | 日韩一区二区三区视频 | 一区二区三区久久久 | 男人天堂视频在线观看 | 国产精品18hdxxxⅹ在线 | 91一区二区三区 | 亚洲高清视频在线观看 | 日韩三级免费观看 | 中日韩欧美一级片 | 日本韩国欧美在线观看 | 亚洲成人av一区二区 | 久久一区精品 | 一区二区三区电影在线观看 | 国产特级毛片 | 二区在线观看 | 在线观看国产wwwa级羞羞视频 | 综合欧美亚洲 | 欧美日韩一区二区视频在线观看 | 天天躁日日躁狠狠躁白人 | 国产成人综合av | 在线看亚洲 | 国产精品日产欧美久久久久 | 午夜国产羞羞视频免费网站 | 久久久成人免费一区二区 | 中文字幕一区二区三区精彩视频 | 日韩一二三区视频 | 午夜一区二区三区 | 人和拘一级毛片c | 国产成人久久精品一区二区三区 | 国产精品小视频在线观看 |