<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:微软雅黑;
        panose-1:2 11 5 3 2 2 4 2 2 4;}
@font-face
        {font-family:"\@微软雅黑";
        panose-1:2 11 5 3 2 2 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Hi Xu,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">I mentioned the bare metal because if you run kata-containers in another VM provided by OpenStack, you can do live-migration to the whole VM(host for kata), and
 bypass kata live-migration requirement.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">></span> In Kubernetes, once a Pod is assigned to a node, it won't go anywhere else in its entire life. And the pod itself should be stateless and<o:p></o:p></p>
<p class="MsoNormal">even stateful workload should rely on permanent volumes or other global resources. Under the above assumption, any migration-like<o:p></o:p></p>
<p class="MsoNormal">requirements should be defined by deployment or other high-level tasks definition instead of sandbox-level migration. This is the philosophy<o:p></o:p></p>
<p class="MsoNormal">of Kubernetes.<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">I agree with you as a technical guy, this philosophy simplifies things a lot and I love simplicity. But life is not always easy, when users/customers pay enough
 money, the marketing guy will force me to  do anything customers want, in general, I will choose to argue
</span><span style="font-size:11.0pt;font-family:Wingdings;color:#1F497D">à</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> fail
</span><span style="font-size:11.0pt;font-family:Wingdings;color:#1F497D">à</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> then add the new feature, or simply find a new job
</span><span style="font-size:11.0pt;font-family:Wingdings;color:#1F497D">J</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Permanent volumes sounds good for stateful workload, but not all workloads are containerized perfectly. When drain the node or respawn the POD in another node,
 you still lost some(number changes according to how frequently the workload write the persist volume) calculation/data. Another use case is the workload start very slowly and they want to avoid restarting.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">I’ll suggest users only run stateless workload in K8s cluster, but this isn’t achievable.  Some people are evening running systemd+sshd in a container which is
 worse.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">-Wei<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="ZH-CN" style="font-size:11.0pt;font-family:"微软雅黑",sans-serif">发件人</span></b><b><span style="font-size:11.0pt;font-family:"微软雅黑",sans-serif">:</span></b><span style="font-size:11.0pt;font-family:"微软雅黑",sans-serif"> Xu Wang
 [mailto:xu@hyper.sh] <br>
<b><span lang="ZH-CN">发送时间</span>:</b> 2018<span lang="ZH-CN">年</span>12<span lang="ZH-CN">月</span>18<span lang="ZH-CN">日</span> 16:02<br>
<b><span lang="ZH-CN">收件人</span>:</b> zhangwei (CR) <zhangwei555@huawei.com><br>
<b><span lang="ZH-CN">抄送</span>:</b> EJ Campbell <ejc3@oath.com>; kata-dev@lists.katacontainers.io<br>
<b><span lang="ZH-CN">主题</span>:</b> Re: [kata-dev] <span lang="ZH-CN">答复</span>:
<span lang="ZH-CN">答复</span>: [Announce] virtio-fs released with Kata Containers support<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi EJ and Wei,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">First of all, I don't think there is a strong relation between bare-metal and live-migration.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">In Kubernetes, once a Pod is assigned to a node, it won't go anywhere else in its entire life. And the pod itself should be stateless and<o:p></o:p></p>
<div>
<p class="MsoNormal">even stateful workload should rely on permanent volumes or other global resources. Under the above assumption, any migration-like<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">requirements should be defined by deployment or other high-level tasks definition instead of sandbox-level migration. This is the philosophy<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">of Kubernetes.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">However, I understand Wei, who is at the role of an operator just like me, he may be very happy if he could be able to do some tweak to<o:p></o:p></p>
<div>
<p class="MsoNormal">avoid unnecessary re-schedule operations, which will reduce service interruption at least. The only problem here is how much is the cost<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">of the live migration.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Personally, I don't think I need live migration in the current stage but I won't reject the live-migration feature if it does not have significant side effects.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-Xu<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Tue, Dec 18, 2018 at 3:30 PM zhangwei (CR) <<a href="mailto:zhangwei555@huawei.com">zhangwei555@huawei.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Hi EJ,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Kata Container is one tiny VM per POD, you can choose to run k8s+kata in another VM provisioned by
 OpenStack, in this case, we run into the nested virtualization scenario. It works well but brings some unnecessary overhead from nested VM usage.
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">To avoid this kind of overhead, we can also choose to run K8S cluster on bare metal, which means every
 worker/node of K8S is bare metal machine instead of VM. By doing this, K8S becomes the lowest level of infrastructure and should provide live migration capability similar to OpenStack VM scenarios.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Live migration could be useful in this scene as every POD is a VM running on bare metal now, we need
 a reliable way to keep workload alive when host machine needs reboot(let’s say, fixing some CVEs).</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">-Wei</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span lang="ZH-CN" style="font-size:11.0pt;font-family:"微软雅黑",sans-serif">发件人</span></b><b><span style="font-size:11.0pt;font-family:"微软雅黑",sans-serif">:</span></b><span style="font-size:11.0pt;font-family:"微软雅黑",sans-serif">
 EJ Campbell [<a href="mailto:ejc3@oath.com" target="_blank">mailto:ejc3@oath.com</a>]
<br>
<b><span lang="ZH-CN">发送时间</span>:</b> 2018<span lang="ZH-CN">年</span>12<span lang="ZH-CN">月</span>18<span lang="ZH-CN">日</span> 14:11<br>
<b><span lang="ZH-CN">收件人</span>:</b> zhangwei (CR) <<a href="mailto:zhangwei555@huawei.com" target="_blank">zhangwei555@huawei.com</a>><br>
<b><span lang="ZH-CN">抄送</span>:</b> Ernst, Eric <<a href="mailto:eric.ernst@intel.com" target="_blank">eric.ernst@intel.com</a>>; Stefan Hajnoczi <<a href="mailto:stefanha@redhat.com" target="_blank">stefanha@redhat.com</a>>;
<a href="mailto:sweil@redhat.com" target="_blank">sweil@redhat.com</a>; Qixuan Wu <<a href="mailto:qixuan.wu@linux.alibaba.com" target="_blank">qixuan.wu@linux.alibaba.com</a>>; Graham Whaley <<a href="mailto:graham.whaley@gmail.com" target="_blank">graham.whaley@gmail.com</a>>;
<a href="mailto:miklos@szeredi.hu" target="_blank">miklos@szeredi.hu</a>; <a href="mailto:kata-dev@lists.katacontainers.io" target="_blank">
kata-dev@lists.katacontainers.io</a>; <a href="mailto:swhiteho@redhat.com" target="_blank">
swhiteho@redhat.com</a>; <a href="mailto:vgoyal@redhat.com" target="_blank">vgoyal@redhat.com</a><br>
<b><span lang="ZH-CN">主题</span>:</b> Re: [kata-dev] <span lang="ZH-CN">答复</span>: [Announce] virtio-fs released with Kata Containers support</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi Zhangwei,<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Could you go into more detail on the use case for live migration on bare metal?<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">EJ<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Mon, Dec 17, 2018 at 6:20 PM zhangwei (CR) <<a href="mailto:zhangwei555@huawei.com" target="_blank">zhangwei555@huawei.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Stefan, Eric,<br>
<br>
There isn't live migration requirement so far, but, I will take this as a potential requirement when Kata is growing more powerful.<br>
In my mind, this is rational as some of us are running kata on bare metal, in this scene, we don't have an infrastructure software such as OpenStack to guarantee the lifecycle of workload.<br>
<br>
Virtio-fs is in RFC state, it could be OK as long as it doesn't have native gap for supporting live migration,  and I will be glad to see it being listed in some roadmap.<br>
<br>
By the way, really nice work! We finally get a better option against 9pfs :-) Thanks!<br>
<br>
-----<span lang="ZH-CN" style="font-family:宋体">邮件原件</span>-----<br>
<span lang="ZH-CN" style="font-family:宋体">发件人</span>: Ernst, Eric [mailto:<a href="mailto:eric.ernst@intel.com" target="_blank">eric.ernst@intel.com</a>]
<br>
<span lang="ZH-CN" style="font-family:宋体">发送时间</span>: 2018<span lang="ZH-CN" style="font-family:宋体">年</span>12<span lang="ZH-CN" style="font-family:宋体">月</span>17<span lang="ZH-CN" style="font-family:宋体">日</span> 22:30<br>
<span lang="ZH-CN" style="font-family:宋体">收件人</span>: Stefan Hajnoczi <<a href="mailto:stefanha@redhat.com" target="_blank">stefanha@redhat.com</a>><br>
<span lang="ZH-CN" style="font-family:宋体">抄送</span>: <a href="mailto:sweil@redhat.com" target="_blank">
sweil@redhat.com</a>; Qixuan Wu <<a href="mailto:qixuan.wu@linux.alibaba.com" target="_blank">qixuan.wu@linux.alibaba.com</a>>; Graham Whaley <<a href="mailto:graham.whaley@gmail.com" target="_blank">graham.whaley@gmail.com</a>>;
<a href="mailto:miklos@szeredi.hu" target="_blank">miklos@szeredi.hu</a>; <a href="mailto:kata-dev@lists.katacontainers.io" target="_blank">
kata-dev@lists.katacontainers.io</a>; <a href="mailto:swhiteho@redhat.com" target="_blank">
swhiteho@redhat.com</a>; <a href="mailto:vgoyal@redhat.com" target="_blank">vgoyal@redhat.com</a><br>
<span lang="ZH-CN" style="font-family:宋体">主题</span>: Re: [kata-dev] [Announce] virtio-fs released with Kata Containers support<br>
<br>
Stefan -<br>
<br>
No, there isn’t a live migration requirement for Kata (sorry for the top post). <br>
<br>
Eric<br>
<br>
> On Dec 17, 2018, at 6:27 AM, Stefan Hajnoczi <<a href="mailto:stefanha@redhat.com" target="_blank">stefanha@redhat.com</a>> wrote:<br>
> <br>
>> On Sun, Dec 16, 2018 at 09:09:48AM +0800, Qixuan Wu wrote:<br>
>> 1) Did you compare the performance to the virtio-blk raw or qcow2 <br>
>> solution of normal virtual machine?<br>
> <br>
> Not yet.<br>
> <br>
> Guest and host page cache performance can dominate benchmarks, so we <br>
> typically use fio direct=1 with QEMU -drive cache=none (O_DIRECT) to <br>
> focus purely on disk I/O performance and not page cache.  The same <br>
> thing can be done with virtio-fs so that every I/O operation requires <br>
> communication with the host.  In theory virtio-fs should be comparable <br>
> to virtio-blk on raw.<br>
> <br>
> In real-world scenarios the page cache will be enabled, especially for <br>
> the virtio-fs DAX feature.  So I need to think carefully about what to <br>
> benchmark, but it will probably include both configurations.<br>
> <br>
>> 2) Whether does it impact live-migration of guest os ?<br>
> <br>
> Virtio-fs currently does not support live migration.  Is there a <br>
> requirement for live migration with Kata Containers use cases?<br>
> <br>
> Stefan<br>
<br>
_______________________________________________<br>
kata-dev mailing list<br>
<a href="mailto:kata-dev@lists.katacontainers.io" target="_blank">kata-dev@lists.katacontainers.io</a><br>
<a href="http://lists.katacontainers.io/cgi-bin/mailman/listinfo/kata-dev" target="_blank">http://lists.katacontainers.io/cgi-bin/mailman/listinfo/kata-dev</a><br>
_______________________________________________<br>
kata-dev mailing list<br>
<a href="mailto:kata-dev@lists.katacontainers.io" target="_blank">kata-dev@lists.katacontainers.io</a><br>
<a href="http://lists.katacontainers.io/cgi-bin/mailman/listinfo/kata-dev" target="_blank">http://lists.katacontainers.io/cgi-bin/mailman/listinfo/kata-dev</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
kata-dev mailing list<br>
<a href="mailto:kata-dev@lists.katacontainers.io" target="_blank">kata-dev@lists.katacontainers.io</a><br>
<a href="http://lists.katacontainers.io/cgi-bin/mailman/listinfo/kata-dev" target="_blank">http://lists.katacontainers.io/cgi-bin/mailman/listinfo/kata-dev</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt">--<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt">Xu Wang<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt">CTO & Cofounder, Hyper<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt">github/twitter/wechat: @gnawux<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt"><a href="http://hyper.sh/" target="_blank"><span style="color:#1155CC">http://hyper.sh</span></a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.5pt">Hyper_: Make VM run like container<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</body>
</html>