V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alwayshere
V2EX  ›  程序员

生产环境 32 位 centos 怎样快速无缝升级为 64 位 centos?(服务商不提供弹性升级)

  •  
  •   alwayshere · 2017-04-25 15:06:54 +08:00 · 4315 次点击
    这是一个创建于 2751 天前的主题,其中的信息可能已经有所发展或是发生改变。

    centos6.7 32 位系统,里面装了大量文件,转移也非常困难,且已经部署在生产环境,用户都在不停访问,当初脑子一懵选了蛋疼的 32 位,现在后悔莫及,好多程序没法安装,求 V 友有没有一种弹性升级成 64 位的方式,保留原始文件,顶多开关机一次就行了,有这样的方法吗?

    22 条回复    2017-04-26 21:53:54 +08:00
    dongxiaozhuo
        1
    dongxiaozhuo  
       2017-04-25 15:11:25 +08:00
    新开一台 x64 的,部署业务代码; 经过测试之后,切 DNS 或者转发。
    alwayshere
        2
    alwayshere  
    OP
       2017-04-25 15:15:01 +08:00
    @dongxiaozhuo 我目前也是这么想的,而且有一台现成的旧机器,就是数据量太多,转移好麻烦
    neroxps
        3
    neroxps  
       2017-04-25 15:15:16 +08:00
    感觉只能重装才能解决吧?

    本菜鸟不懂。

    好像各种软件都要安装成 64 位版本的,你这个不是升级版本,是升级架构,所有软件应用环境都要重装的。

    本菜鸟想到的方法就是,部署一台 64 位的 centos ,将业务系统全部迁移到新机器上(最好存储数据和系统分开部署以防再出现这样的情况),等新的业务系统运行良好测试好后,再切换。

    想只重启一次就能 32 变 64 ,感觉不可能,当然,本人菜鸟,鼠目寸光,或许真有办法,坐等老大解答。
    imnpc
        4
    imnpc  
       2017-04-25 15:18:11 +08:00
    无解 无法无缝升级
    只能新开 64 位 转移数据
    hjc4869
        5
    hjc4869  
       2017-04-25 15:21:13 +08:00   ❤️ 3
    Tink
        6
    Tink  
       2017-04-25 15:30:26 +08:00
    装个 64 位的,然后开个 32 位的虚拟机

    滑稽 :)
    julyclyde
        7
    julyclyde  
       2017-04-25 16:21:04 +08:00
    你这升级至少也得重启到 64 位内核,应该是不能无缝
    neroxps
        8
    neroxps  
       2017-04-25 16:25:04 +08:00
    @julyclyde 楼主说可以重启。但是仅限于一次
    MFC
        9
    MFC  
       2017-04-25 16:40:35 +08:00
    我觉得理论上应该有办法在 32 位的 centos 上通过 yum/dnf 装上所有必要的 64 位包,包括内核,然后重启到 64 位。虽然我没这么干过,但或许能 google 到这种办法。。。
    vus520
        10
    vus520  
       2017-04-25 16:45:58 +08:00
    docker 不就是最好的方案吗,亲?
    paranoiagu
        11
    paranoiagu  
       2017-04-25 16:46:49 +08:00
    docker
    alwayshere
        12
    alwayshere  
    OP
       2017-04-25 16:49:38 +08:00
    @vus520
    @paranoiagu 32 位能装 docker 么??!!
    jarlyyn
        13
    jarlyyn  
       2017-04-25 16:51:48 +08:00
    32 位的 nginx 转发

    其他业务逐渐转移……
    we3613040
        14
    we3613040  
       2017-04-25 17:00:57 +08:00
    @MFC 已经安装的程序怎么办? 32 的指令码和 64 的指令码不一样
    vus520
        15
    vus520  
       2017-04-25 17:20:05 +08:00
    @alwayshere 还真不行
    BeatenMo
        16
    BeatenMo  
       2017-04-25 19:17:19 +08:00
    新开一台,慢慢搬吧
    真要那么省心,估计咱这一行大部分事情都很省心了
    HLT
        17
    HLT  
       2017-04-25 19:35:51 +08:00
    快速、无缝。。。

    就是慢、有缝 也不好弄。。。甚至根本不行
    msg7086
        18
    msg7086  
       2017-04-25 23:49:29 +08:00
    @we3613040 64 位内核可以跑 32 位程序。(但是无缝就想多了)
    we3613040
        19
    we3613040  
       2017-04-26 09:58:51 +08:00
    @msg7086 是可以,不过这个需要重新编译吧,即使 64 位的支持 32 的指令集,但 64 位的寻址可都是 64 位, 32 位程序编译以后都是 32 位的啊,在 64 位系统运行的 32 位程序也是在 32 位基础上高位补零的吧,这个只是猜测,我没试验过
    msg7086
        20
    msg7086  
       2017-04-26 10:27:16 +08:00
    @we3613040
    Windows 早就实现了 32 位程序在 64 位内核上运行。
    Linux 也一样。
    x86_64 指令集向下兼容 x86 。
    we3613040
        21
    we3613040  
       2017-04-26 10:29:19 +08:00
    @msg7086 学习了
    julyclyde
        22
    julyclyde  
       2017-04-26 21:53:54 +08:00
    如果可以重启就好说了,换个 64 内核启动,起来之后再替换系统内软件到 64
    64 内核+32libs 是可以运行的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3360 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 00:40 · PVG 08:40 · LAX 16:40 · JFK 19:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.