ARTS-2

Posted carlsplace

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARTS-2相关的知识,希望对你有一定的参考价值。

ARTS的初衷

  • Algorithm:主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell
  • Review:主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com(需要梯子)以及各个公司的技术blog,如Netflix的。
  • Tip:主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。
  • Share:主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章。

    作者:陈皓
    链接:https://www.zhihu.com/question/301150832/answer/529809529
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Algorithm

todo

Tip

官方维护的软件仓库总有不够用的时候,有时会遇到需要自己打软件包的情况,掌握这项技能还是很必要的。

  1. deb打包

参考资料:deb打包教程

# 打包anaconda的简单示例,操作都在Package目录下进行
mkdir anaconda # 新建anaconda包的fake-root目录,软件包需要用到的所有文件都放在该目录下
mkdir anaconda/DEBIAN # 新建包信息目录
cat anaconda/DEBIAN/control # 配置信息示例

Package: anaconda3-diy
Version: 4.3.1-20191113
Section: unknown
Priority: optional
Depends:
Suggests:
Architecture: amd64
Installed-Size: 9071876
Maintainer: chang.yaocheng
Provides:
Description: Anaconda diy

ls anaconda3 # anaconda3的目录内容
DEBIAN home usr

dpkg-deb -b anaconda3 anaconda3-amd64.deb # 开始打包

Review & Share

目前还做不到分享一篇有观点和思考的技术文章,那就先做好积累吧。

物理机迁移kvm方案调研

最近公司搞成本优化,需要迁移一批物理机到kvm虚拟机。苦于迁移成本太高,对于环境复杂的机器,一人力一天只能迁移个1到2台。于是,我便寄希望于将物理机直接虚拟化的方案,希望能够降低迁移成本。
现有的迁移方案基本分类两类:

  1. Hot migration,不停机迁移,这类方案要求物理机上的数据相对固定(Recommended for static data);
  2. Cold migration,关机迁移,这类方案基本上是从livecd这类系统启动,对整个硬盘做镜像。
    维基百科上列举了一些成熟的方案和工具,它们适用的场景各有不同,多数是cold migration。

hot migration的可行性

现有业务场景下,想要的是hot migration,所以重点看hot方案的可行性。
网上搜索了半天, 找到几个可行的方案,很多方案实际上还是cold migration,只不过停机时间很短。

  1. kvm官方虚拟机跨物理机迁移文档,记录作为参考。
  2. 先使用rsync同步大部分数据,停止服务继续同步变化后的文件,最后修正虚拟机的引导和fstab:Manual P2V of Debian Sarge
  3. P2V Migration with Post-Copy Hot Cloning for Service Downtime Reduction,这篇论文提出了利用内核模块同步文件块改动的方式来在线clone物理机的磁盘,实现成本比较高,且还是需要手动调整配置,修复引导。
  4. 停服务不关机,使用dd拷贝整个磁盘:Converting a running physical machine into a KVM virtual machine
  5. 使用tar打包,根据机器上的具体服务器要的,exclude非必要的文件夹:链接
    以上方法都存在,不可自动化和成功率难保证的问题(需要手动配置引导、热拷贝的数据难保证完全一致),所以无法在实际生产环境中使用。

    cold migration

    cold migration有很多成熟的方案和工具,可参考维基百科,该类方法理论上可以做到半自动化,但是操作成本高,需要重启服务器,同样不适用于我碰到的问题。
  6. virt-p2v
    http://libguestfs.org/virt-p2v.1.html

结论

初步结论,系统级别的hot migration实现成本高,无成熟解决方案(包括商业和开源)。现有成熟方案都是 cold migration。
由于没有停机迁移的条件,想要降低迁移成本的话,从新机器环境配置上下功夫更靠谱。

  1. tar大法可以尝试下,迁移一部分看成本能否接受
    https://www.kancloud.cn/ivandu/linux/405447
  2. 调研使用saltstack或者shell脚本快速同步配置的方法

以上是关于ARTS-2的主要内容,如果未能解决你的问题,请参考以下文章

arts-week2

ARTS-week2

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?