【实战+视频】在龙芯CPU和中标麒麟系统上装品高云,实现EC2,EIP,VPC等云服务

本文详细描述了,如何在国产CPU,龙芯3B(MIPS架构)+中标麒麟OS的运行情况下,如何安装部署品高云(BingoCloudOS),并实现弹性服务器(EC2)、弹性IP(EIP)和虚拟私有云(VPC)等云服务。

至此实现了全国产化(国产CPU+国产OS+国产云操作系统)组团的云操作系统架构,为军队、涉密单位乃至未来的国家整体国产化云平台奠定了坚实基础。

先用一个视频,展示下最终成果

环境信息与思路

版本信息

组件 版本
龙芯CPU 3B(MIPS架构)
中标麒麟(类RHEL) 版本:6.0_U5,内核版本:2.6.32-0.54(安装过程中需升级内核版本至2.6.32-1.6)
Erlang R14B
yaws 1.89
LXC 1.1.0
BingoCloudOS 5.5.0.150716

安装思路及背景

  BingoCloudOS云平台依赖Erlang、yaws(云控制器依赖),而源内暂无现成的rpm包,所以在安装BingoCloud云平台前,需要先编译安装这几种包,然后对系统做一些调整,由于龙芯CPU并不支持kvm等虚拟化,则我们采取用LXC容器的方式启动虚拟机,因此我们还需升级系统内核。再依次安装BingoCloud的云控制器,集群和节点。

1.准备工作

1.1.清除iptables配置

#iptables --flush
#service iptables save; service iptables restart
#iptables --list

正确应返回下列内容:

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

1.2.禁用SELinux (默认就禁用了)

#sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config
#setenforce 0
#/usr/sbin/sestatus -v

正确应返回:

SELinux status: disable

1.3.把服务器伪装成RedHat系统

  由于BingoCloudOS并没有针对NeoKilin系统的安装脚本,所以需要伪装成redhat系统:

  为了让 lsb_release –id 指令能输出 RedHatEnterpriseServer,需要手工创建脚本如下

#vi /usr/bin/lsb_release

内容如下:

#!/bin/sh

echo Distributor ID: RedHatEnterpriseServer

测试结果:

#chmod +x /usr/bin/lsb_release
#lsb_release --id

正确应返回:

Distributor ID:RedHatEnterpriseServer

1.4.准备本地yum源:

  挂载yum源光盘到本地路径,修改/etc/yum.repos.d/rhel-source.repo,指定baseurl和gpgkey为相应源路径,编辑内容如下,其中/media/cdrom为挂载repo光盘的路径:

#vim /etc/yum.repos.d/rhel-source.repo

内容如下:

baseurl=file:///media/cdrom

enabled=1

gpgcheck=0

gpgkey=file:///media/cdrom

设置好yum源后刷新源缓存

#yum clean all
#yum makecache

1.5.通过yum安装云平台上的各种依赖

主控依赖

#yum install lvm2 vconfig sysstat bridge-utils expect mysql-server -y

集群依赖

#yum install lvm2 vconfig sysstat bridge-utils dhcp -y

节点依赖

#yum install lvm2 vconfig sysstat bridge-utils -y

编译Erlang的依赖

#yum install ncurses- autoconf -y

编译Erlang的依赖

#yum install openssl openssl-devel -y

编译yaws的依赖

yum install pam-devel gcc gcc-c++ -y

2.编译安装Erlang

2.1.去Erlang官网下载这里写代码片`

#wget http://www.erlang.org/download/otp_src_R14B.tar.gz
#tar -xvzf otp_src_R14B.tar.gz
#cd otp_src_R14B

2.2.修改配置文件

#vim erts/autoconf/config.guess

作如下修改:

##将 mips64: 修改为 mips64*:

##修改位置的上下文:

mips64*:Linux::)

eval $set_cc_for_build

等同于用以下命令替换:

#sed -i ‘s/mips64:Linux:/mips64\*:Linux:/g‘ erts/autoconf/config.guess

2.3.编译Erlang

#export ERL_TOP=`pwd`
#./otp_build autoconf
#./otp_build configure --host=mips64el-linux --build=mips64el-unknown-linux-gnu erl_xcomp_sysroot=/

完成后提示: odbc : ODBC library - link check failed odbc

即,odbc未安装,这个可忽略;wx未安装,也可忽略。

接下来这个要编译要执行很久

./otp_build boot -a

2.4.手动安装Erlang至合适位置,并添加环境变量使系统能顺利访问

#./otp_build release -a
#mkdir /usr/lib64/erlang/ -p
#cp -r release/mips64el-unknown-linux-gnu/*  /usr/lib64/erlang/.
#cd /usr/lib64/erlang
#./Install -minimal `pwd`
#export PATH=$PATH:/usr/lib64/erlang/bin
#echo ‘export PATH=$PATH:/usr/lib64/erlang/bin‘ >> /etc/bashrc
#ln -s /usr/lib64/erlang/bin/erl /usr/bin/erl

至此完成Erlang的安装,可执行erl测试是否可用:

#erl

应该出现如下内容:

Erlang R14B (erts-5.8.1) [source] [64-bit] [smp:16:15] [rq:16] [async-threads:0] [kernel-poll:false]

Eshell V5.8.1 (abort with ^G)

1>

出现erl控制台,则说明erl已正确安装。

3.编译安装yaws (云主控制器需要,作为主控的web服务器)

3.1 去yaws官网下载源码包并解压

#wget http://yaws.hyber.org/download/yaws-1.89.tar.gz
#tar -xvzf yaws-1.89.tar.gz
#cd yaws-1.89

3.2 编译安装yaws

#./configure --host=mipsel-linux --build=mips64el-unknown-linux-gnu  --prefix=/usr/lib64/erlang/lib/yaws
#make
#make install

3.3 调整yaws的位置,令erlang能正确调用

#cp -r /usr/lib64/erlang/lib/yaws/lib/yaws /usr/lib64/erlang/lib/yaws-1.89

3.4 测试yaws是否可用

#erl

在erl控制台下输入l(yaws). 能返回{module,yaws}则说明yaws已安装正确

Erlang R14B (erts-5.8.1) [source] [64-bit] [smp:16:15] [rq:16] [async-threads:0] [kernel-poll:false]

Eshell V5.8.1 (abort with ^G)

1> l(yaws).

{module,yaws}

2>

4.安装LXC容器 (云节点需要,作为节点的虚拟化工具)

4.1.在安装LXC前,需升级内核至1.6.0版

#tar -xvf LXC-1.1.0.tar
#cd LXC-1.1.0/KERNEL/

用rpm包将内核升级至2.6.32-1.6版

#rpm -Uvh kernel-*.rpm

4.2.调整grub引导启动的vmlinux

#cd /boot/
#cp vmlinuz-2.6.32-1.6.ns6.mips64el boot/.
#cd boot/

备份旧内核vmlinux

#mv vmlinux vmlinux_old

更新新内核vmlinux

#mv vmlinuz-2.6.32-1.6.ns6.mips64el vmlinux

4.3.重启系统更新内核

重启

#reboot

#uname -r

正确应返回:2.6.32-1.6.ns6.mips64el,内核更新成功

4.4.安装LXC,并检查是否能正常使用

#cd LXC/
#rpm -ivh *.rpm
#lxc-checkconfig

正确应返回:

Kernel configuration not found at /proc/config.gz; searching…

Kernel configuration found at /boot/config-2.6.32-1.6.ns6.mips64el

— Namespaces —

Namespaces: enabled

Utsname namespace: enabled

Ipc namespace: enabled

Pid namespace: enabled

User namespace: enabled

Network namespace: enabled

Multiple /dev/pts instances: enabled

— Control groups —

Cgroup: enabled

Cgroup namespace: enabled

Cgroup device: enabled

Cgroup sched: enabled

Cgroup cpu account: enabled

Cgroup memory controller: /usr/bin/lxc-checkconfig: line 103: [: too many arguments

enabled

Cgroup cpuset: enabled

— Misc —

Veth pair device: enabled

Macvlan: enabled

Vlan: enabled

File capabilities:

Note : Before booting a new kernel, you can check its configuration

usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig

4.5.后续操作

#mkdir /var/lib/lxc/rootfs/ -p
#mkdir /cgroup
#echo -e "cgroup\t\t\t/cgroup\t\t\tcgroup\tdefaults\t0 0" >> /etc/fstab
#mount -a
#mount

5.安装云主控制器

5.1.建立mysql数据库

#[email protected]

设mysqld开机启动

#chkconfig mysqld on

启动mysqld服务

#service mysqld start

设置数据库密码

`#mysqladmin -u root password “${sqlpasswd}”

进入数据库

#mysql -u root -p

增加品高云所用数据库,并退出

>GRANT ALL PRIVILEGES ON . TO [email protected]”%” IDENTIFIED BY ‘[email protected]’ WITH GRANT OPTION;

>quit

5.2.解压BingoCloudOS

#mkdir -p /opt/bingocloud/latest
#tar -xvzf bingocloud-v5.5.0.150716.tar.gz -C /opt/bingocloud/latest

5.3.调整安装脚本

  由于原生的BingoCloudOS此时调用RedHat的安装脚本(指向CentOS),所以我们针对麒麟系统在安装脚本中做适当的调整(防止安装过程中用rpm –q命令检测erlang和yaws等依赖,从而避免安装云服务时意外中止),具体调整如下:

#vim /opt/bingocloud/latest/output/tools/install/install_installer.centos.sh

注释这句: sudoyuminstall?y"install”/res/rpm/erlang-r14b/*.rpm

注释这句: sudoyuminstall?y"install”/res/rpm/yaws-1.89/*.rpm

#vim /opt/bingocloud/latest/output/tools/install/install_cloud.centos.sh

将install_res=”rpm -q erlang yaws lvm2 vconfig sysstat bridge-utils

改成下面那句:

install_res=”rpm -q lvm2 vconfig sysstat bridge-utils

#vim /opt/bingocloud/latest/output/tools/install/install_cluster.centos.sh

将install_res=”rpm -q erlang dhcp lvm2 vconfig sysstat bridge-utils scapy

改成下面那句:

install_res=”rpm -q dhcp lvm2 vconfig sysstat bridge-utils

#vim /opt/bingocloud/latest/output/tools/install/install_node.centos.sh

将install_res=”$su_do rpm -q erlang lvm2 vconfig sysstat bridge-utils qemu-kvm libvirt-client

改成下面那句:

install_res=”$su_do rpm -q lvm2 vconfig sysstat bridge-utils

另外,可运行以下命令快速更改:

#cd /opt/bingocloud/latest/output/tools/install

#sed -i ‘s/\$su_do yum install -y \"/\#\$su_do yum install -y \"/g‘ install_installer.centos.sh

#sed -i ‘s/rpm -q erlang yaws lvm2 vconfig sysstat bridge-utils/rpm -q lvm2 vconfig sysstat bridge-utils/g‘ install_cloud.centos.sh

#sed -i ‘s/rpm -q erlang dhcp lvm2 vconfig sysstat bridge-utils scapy/rpm -q dhcp lvm2 vconfig sysstat bridge-utils/g‘ install_cluster.centos.sh

#sed -i ‘s/rpm -q erlang lvm2 vconfig sysstat bridge-utils qemu-kvm libvirt-client/rpm -q lvm2 vconfig sysstat bridge-utils/g‘ install_node.centos.sh

5.4.运行安装脚本安装BingoCloudOS

#sh /opt/bingocloud/latest/output/install_bingocloud.sh

Please visit the following page to complete installation:

http://10.202.166.5:8663/

5.5.在云主控制器IP:8663的网页上完成云平台的后续安装

安装完成后,需要进一步添加集群和节点,添加节点前的前期准备工作步骤见后

6.调整云平台节点

6.1.编写脚本反馈节点规模的信息

  由于未安装libvirt组件,所以节点不能通过virsh nodeinfo这个命令来反馈给主控可以调用多少资源,所以我们手动编写脚本,完成信息的反馈(里面参数根据实际情况而定)。

#vi /bin/virsh

添加如下内容

#!/bin/bash

if [ “$*” = “nodeinfo” ]; then

echo “CPU model: mips64”

echo “CPU(s): 4”

echo “CPU frequency: 800 MHz”

echo “CPU socket(s): 1”

echo “Core(s) per socket: 2”

echo “Thread(s) per core: 1”

echo “NUMA cell(s): 1”

echo “Memory size: 4000000 KiB”

fi

#chmod +x /bin/virsh
#virsh nodeinfo

正确应返回下列内容

CPU model: mips64

CPU(s): 4

CPU frequency: 800 MHz

CPU socket(s): 1

Core(s) per socket: 2

Thread(s) per core: 1

NUMA cell(s): 1

Memory size: 4000000 KiB

6.2.打补丁优化云平台对LXC的调用

#cd /opt/bingocloud/latest/output/lib/cloudutility/ebin/
#mv vmachine_lxc.beam vmachine_lxc.beam.bak
#cp /root/bingocloud/patch/vmachine_lxc.beam ./

6.2.复制镜像文件

#cd -r /root/bingocloud/bcshare/image /bcshare/cloud/image
#touch /bcshare/.bingocloud

7.在云控制器的控制页面添加集群和节点,并运行虚拟机

7.1.安装云控制器

上接章节【5.5.在云主控制器IP:8663的网页上完成云平台的后续安装】,完成运行BingoCloudOS安装脚本后,访问云控制器的8663端口进行接下来的安装:

7.2.添加集群

7.3.添加节点

7.4.创建云网络

7.5.注册现有镜像

( 关于用LXC容器创建镜像的具体步骤,将在后续文档详细介绍 )

7.6.创建实例

7.7.添加及绑定弹性IP

7.8.成功创建实例并用ssh连接实例

能顺利用ssh 登陆到实例中,至此,龙芯CPU和中标麒麟系统上成功安装品高云平台。

时间: 2024-08-06 04:44:22

【实战+视频】在龙芯CPU和中标麒麟系统上装品高云,实现EC2,EIP,VPC等云服务的相关文章

中标麒麟系统远程桌面连接

中标麒麟是中国自主研发的操作系统 ( 逃~ 搭载了龙芯(mips)的中标麒麟OS使用起来非常流畅(逃~ 远程连接需要的两个软件 Xmanager & Xshell 使用起来还是可以的 首先要在麒麟系统上开启ssh服务 连接ssh服务的一般默认端口是22 端口 gedit /etc/init.d/sshd 出现这个,说明OS上已经安装了ssh服务: 基本上麒麟都有: service sshd start 启动sshd服务. service sshd restart 重新启动sshd服务,没有shu

中标麒麟系统进行双网卡绑定

cd /etc/sysconfig/network-scripts/ [[email protected] network-scripts]# cat ifcfg-bond0 DEVICE=bond0 NM_CONTROLLED=no  #yes的话是不需要network restart,直接生效. BOOTPROTO=static ONBOOT=yes IPADDR=10.225.3.164 NETMASK=255.255.255.0 GATEWAY=10.225.3.254 DNS1=10.

Asp.Net终于可以在龙芯服务器上运行啦:Jexus成功完成对国产系列CPU的适配

为了确保我国信息化建设“安全可靠”,使用国产关键系统.关键应用.关键软硬件替代国外信息技术产品,已经在党政部门.国营企事业单位得到了进一步落实.过去运行于 Windows 服务器的 Web 应用程序,尽快向国产服务器迁移,新的应用系统面向国产服务器开发,已经势在必行. 在应用程序运行环境方面,Mono 和 .Net Core 都已经以 MIT 协议开源多时,同时,微软免除了与之相关的所有专利并转交“.NET基金会”这个独立的自由软件组织进行管理,因此,.NET 技术及其运行平台,完全符合我国信息

国产CPU新里程碑!龙芯3号新一代发布,性能追赶AMD

芯东西 12 月 24 日消息,今天,龙芯中科发布龙芯 4000 系列 CPU 芯片,分别为<strong>3A4000 和 3B4000</strong>.性能方面,3A4000/3B4000 采用 28nm FDSOI 工艺,微架构为 GS464V 核心,通用处理性能提升一倍以上,这将成为我国自主 CPU 发展史上又一新的里程碑. 据悉,龙芯 4000 系列进一步完善对虚拟机的支持,效率达到 95% 以上.在相同主频下,龙芯 4000 系列比 3A3000 的流水线效率提高 5

关于龙芯(转)

也许是龙芯名称中的“龙”字,承载着太多国人的希望,自诞生之初就处于社会舆论的风口浪尖.有人说龙芯是骗经费的项目,也有人说龙芯的科研人员是为理想而奋斗的志士,还有人说龙芯的科研人员“太天真”,是土八路斗美械师,自寻死路.龙芯究竟怎么样?无数篇横看成岭侧成峰的报道给龙芯包裹上了层层迷雾.那么今天,就让我们一起揭开迷雾下的真相,洞察志士的艰辛与心血. 1.龙芯的诞生 回溯历史,中国也曾经拥有过自己的 CPU 和全自主的半导体产业.但因在上世纪 80 年代奉行“造不如买.买不如租”.“市场换技术”等方针

龙讯2号 我用带有胡伟武签名的龙芯电脑

LSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLS                                               === 龙讯 ===                 龙芯资讯周刊                   第2号 2007年1月7日发布          http://loongsoon.blog.sohu.com LSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLS 新年好,欢迎您阅读<龙讯>! ++++++++++++++

[转帖]15年了,龙芯拿什么与国外芯片巨头对抗?

15年了,龙芯拿什么与国外芯片巨头对抗? 2018-06-02 20:53设计/计算机/操作系统 来源:雷锋网 摘要:也许是龙芯名称中的"龙"字,承载着太多国人的希望,自诞生之初就处于社会舆论的风口浪尖.有人说龙芯是骗经费的项目,也有人说龙芯的科研人员是为理想而奋斗的志士,还有人说龙芯的科研人员"太天真",是土八路斗美械师,自寻死路. 龙芯究竟怎么样?无数篇横看成岭侧成峰的报道给龙芯包裹上了层层迷雾.那么今天,就让我们一起揭开迷雾下的真相,洞察志士的艰辛与心血. 1

致龙芯15周年 胡伟武披露龙芯3号开发历程(非常精彩,巨多干货)

近日,龙芯中科宣布3A3000四核处理器芯片完成流片并通过系统测试.根据现有的测试结果,龙芯3A3000达到了预定的设计性能目标.其中,综合计算性能方面,在1.5GHz主频下,GCC编译的SPEC CPU 2006定点和浮点单核分值分别超过11分和10分:访存性能方面,Steam分值超过13GBps. 龙芯3A3000的流片成功,标志着我国自主研发的高性能微处理器芯片,可以超越目前引进的同类芯片性能.龙芯CPU首席科学家胡伟武撰文披露了龙芯3号开发的历程. 龙芯3A3000芯片 2016年是红军

[转帖]龙芯3A4000处理器实测:28nm工艺不变 性能仍可提升100%以上

龙芯3A4000处理器实测:28nm工艺不变 性能仍可提升100%以上 http://news.mydrivers.com/1/663/663122.htm 龙芯是中科院下属的计算机所研发的自主产权国产处理器,现在已经由中科龙芯公司商业化,再过几天他们又要发布新一代龙芯处理器——龙芯3A4000系列了,这是在现有的龙芯3A3000系列上的改进版.根据之前的消息,龙芯3A4000处理器依然是28nm工艺,频率从龙芯3A3000的1.5GHz提升到了2.0GHz,架构升级为GS464V,搭配的芯片组