zoukankan      html  css  js  c++  java
  • Dsm as deepin mate:将skynas打造成deepin的装机运维mateos​

    本文关键字:ecs在线安装自定义镜像,通用无限制云主机dd安装windows,Debian live os as packer,用群晖统一打造Time Machine和iCloud server

    本文是《ubuntu touch as deepin mate os,second pc os》中用dsm作为deepen mate的继续。

    当mac产品之间变得越来越融合(osx10.15,ipad os,etc..),我们抛弃它的成本就越来越高,对于我,我最不能舍弃的是它的icloud与finder无缝的方式。还有它能timemachine整盘备份/网络恢复,osx recovery在线重装os的方式。

    所以我一直在寻找脱离osx生态和替换以上产品的方式,当然,要以不牺牲体验为前提。比如,它可以是一个类unix系统,如日益变好的deepin和一些第三方的cloud sync产品。见《ubuntu touch as deepin mate os,second pc os》。

    可deepin刚好缺少这几大功能。它的recovery os是传统windows PE式的不支持网络安装。它又没有全盘镜像。deepin dde也没有集成cloud,要寻找另外的方案。

    那么有没有在网络环境中通用的安装iso的手段呢?网络安装系统的一些实践和通用技术是什么呢。netboot?pxe?tftp?ghost network?

    那么用户数据重装恢复呢。这基本可想象是现今常见的cloud服务+客户端同步,对于linux的桌面,有没有无需客户端的cloud mounter呢且能与explorer尽可能融合的方案存在呢?甚至,它能与系统重装统一吗?

    好了不深究它了。关于系统重装,运维,这绝不是一个小课题,以前我们集中于单点和实机,现在我们有云和分布式节点频繁重装和异地灾备这样的需求,还有更多未来需求 —— 我们将这一切上升到一个OS,这一切我们称为mirror os,mate os。

    我们一步一步来。依然是采用skynas和deepin作例子,我们首先要将skynas打造成deepin的装机运维mateos。

    网络重装系统,与用户数据恢复,整盘快照增量备份恢复

    在前面《共享在阿里云ecs上安装自定义iso的方法》我们讲到在ecs这种异于实机的装机环境中换ISO,那时我们利用virtiope在linux ecs中操作硬盘释放系统安装。大部分都是手动过程。利用的是windows pe这种图形GUI的中间维护系统。

    现在我们有linuxpe和自动化的方案,moeclub在《从零开始:在 Linux VPS 上覆盖安装WINDOWS通用教程》中用Debian live os描述了手动利用DD备份和恢复镜像的方式,如以下:

    dd if=/dev/sda | gzip > vdaimg.gz
    wget -qO- http://xxx/vdaimg.gz |gunzip -dc | dd of=/dev/vda
    

    除此之外,moeclub还并提出一个整合性的脚本installnet.sh,并附有修正ip,远程桌面等的作用。它可以dd方式恢复windows镜像(你可以想象osx pe的在线安装系统),也可以以安装方式在当前云主机安装常见的linux(你可以想象为syno pe的webassit局域网安装pat),使用的是debian livecd,它发挥二个作用,1,livecd可以将驱动注射到维护系统,Debian netboot mini.iso https://wiki.debian.org/DebianInstaller/NetbootFirmware https://www.debian.org/devel/debian-installer/这相当于在线生成virtiope的自动版,2,它类packer,可以为即将安装的系统按模板生成目标实体。这二个完成之后,它会全盘DD或安装。

    这个Debian liveos+moeclub的脚本即提出了一种通用网络安装/恢复的方法。当然它还没有自动/手动备份和恢复用户数据的方式。系统的更新和系统配置数据,,应用数据,用户数据往整盘的增加,即镜像的多版本,都要求timemachine支持增量,

    在osx中,timemachine 也是有局限的,它只备份osx所在区。至于用户数据恢复,其实timemachine在完成一次恢复之后,icloud数据是默认被排除不恢复的。在osx中,系统和用户数据分开备份。是因为apple认为timemachine数据在本地时间胶囊之类的东西上局域网云,icloud永远在远程云上,用混合备份的方式。

    而现在我们统一了系统和数据都在远程。趁现在它没有像timemachine那种持续增量DD和恢复的方式,我们可以改进一下,把timemachine发展为cloud share sync的方式。用户数据和系统数据彻底分开。只要求备份某个有数据变动的分区。

    比如,从用户名开始的以后部分全部是backup的。彻底分离的usr/system设计,system为readonly,这其实是安卓类手机系统的一惯做法。可以是一个pe.这也是类群晖系统更新的关键所在。updateable的部分不触动webassit部分。Mac osx 10.15之后也是将系统作为只读镜像,tinycorelinux也有cloud模式,所以以后,osx timemachine估计不会备份系统除非单盘方式。

    好了。以上是问题的高级部分。回过头来:

    下面我们来讲解使用它在阿里云安装skynas的方法。再来讲集成dsm的cloudsync服务到本地的方式。moeclub的InstallNET.sh脚本针对windows镜像的,才有改IP的效果。如果是skynas这种,需要手动去改。或事先在镜像中做好。或通过定制脚本来实现。不过skynas是可以自动配置IP的。

    在阿里云上网络安装skynas镜像和搭建类timemachine的服务器

    在《使用群晖作mineportalbox(3):在阿里云上单盘安装群晖skynas》和《利用整块化自启镜像实现黑群在单盘位实机与云主机上的安装启动》中我们讨论了手动抠出skynas镜像并单盘安装的方式。那么现在我们将使用上述InstallNET.sh来自动恢复它。这三篇文章中都有类似linuxPE,脚本这样的组合手段和相似思路。

    所以我们这里直接DD出skynas镜像并不需要按上二文处理,你可以按需买一个双20g盘阿里云(这里仅作为测试,数据盘可以买大一些,系统盘和数据盘都不要使用ssd),vda用skynas615-15254初始化在初始化过程中一旦出现已运行,在控制台立马快速强行停止云主机,然后作快照(使用阿里云自己的导入镜像没用它是没有分区表的),恢复这个快照到数据盘vdb,然后重置vda为ubuntu,在其中dd并gzip vdb,将得到的文件scp上传到可以下载的地方,然后利用installnet.sh将其恢复到任何ECS的vda上./installnet.sh -dd 'http://xxx.com/img.gz',如果有VNC可以看到Starting the partitioner 会停留很久,就是在执行上面二句,一定要等它完成。(其实你照样在这里可以得到系统盘+数据盘单盘安装skynas方式,提示一下:把数据库作为临时系统盘启动,让系统盘中的镜像临时认数据盘为vda,然后卸载数据盘。)。

    以上或许还支持将skynas安装到其它服务商的ecs上。

    好了。skynas支持TC和cloud station。然后找到一个叫cloudmounter的软件,cloudmounter支持将dsm webdav 方式的cloud托管服务集成到osx的finder,还支持linux, windows,并将缓存的文件放入一个可选的本地位置,当然,它跟提供了finder sync api的osx finder的可定制性还是不能比。不过它跟原生的iCloud in finder最接近了。

    ———————

    下次我们将把群晖打造成一个uniform 运维,使用,开发者统一的os设计。配合浏览器录屏把群晖打造成收藏os,能收集所有类型文档的,聚合os,,像以前的tumblr一样,所有的网上视频等,不必经过下载。收藏视频的方法是录制,像note crapper一样,并将让tinycorelinux支持netboot和网络安装。


    (此处不设回复,扫码到微信参与留言,或直接点击到原文)

    https://gitee.com/minlearn/minlearnprogramming/:minlearn的最小编程学习集和实训栈方案。
  • 相关阅读:
    php composer 相关及版本约束等小技巧
    Jquery 获取表单值如input,select等方法
    Apache benchmark 压力测试工具
    Linux中的随机数文件 /dev/random /dev/urandom
    redis持久化
    Python---装饰器
    高仿拉手网底部菜单实现FragmentActivity+Fragment+RadioGroup
    python实现二叉树和它的七种遍历
    Spring AOP应用实例demo
    二维数组的列排序
  • 原文地址:https://www.cnblogs.com/minlearn/p/13770310.html
Copyright © 2011-2022 走看看