
# 准备资源
#### 概述
ROMA Site协同版实例目前仅支持自建站点，企业自建边缘节点，使用客户自有机房的虚拟机。
在创建自建站点类型ROMA Site实例前，需要准备虚拟机资源、安装Docker、安装Haveged、配置NTP时间同步、挂载磁盘，以及检查虚拟机与ROMA Site、IEF、SWR、OBS以及AOM五个服务是否通信。
其中，使用智能边缘平台IEF的容器应用，需要单独付费，计费模式如下：
- 套餐包计费模式：即购买了套餐包。购买后，会根据实际使用情况从套餐包中直接扣费。
- 按需计费模式：即未购买套餐包，根据实际使用情况进行扣费。
 
具体计费详情请参考[智能边缘平台IEF](https://support.huaweicloud.com/productdesc-ief/ief_productdesc_0001.html)。
虚拟机资源准备有以下两种场景，您可以根据实际场景准备虚拟机资源。
- 首次创建ROMA Site实例，需要根据ROMA Site实例资源要求申请新的虚拟机。
- 使用已创建过ROMA Site实例，且实例已删除的虚拟机重新创建ROMA Site实例。
由于操作系统、数据库软件等资源由客户准备，因此ROMA不负责此类资源的后期维护，强烈建议客户购买商业版的操作系统、数据库等软件，以免影响客户业务的正常运行。
#### 首次创建ROMA Site实例
1. ROMA Site实例分为基础版、专业版和API网关边缘实例（基础版、专业版、企业版、铂金版），在创建ROMA Site实例前，您可根据实际需要准备基础版或专业版的虚拟机资源，具体要求参见下表。
   表1虚拟机资源 
   | 实例规格           | 虚拟机数量（台） | VIP | CPU   | 内存（G） | 磁盘io(读+写）（MB/s） | 系统盘（G） | 数据盘（G） | 日志盘（G） | 系统架构                                                                                                                          | Glibc版本     | 网络带宽性能                                                                                                                                | IEF边缘节点（个） |
   |:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
   | 基础版            | 3        | 1   | \>=16 | \>=64 | \>=350          | \>=100 | \>=300 | \>=200 | 仅支持x86_64架构，具体支持的OS请参见[IEF边缘节点规格要求](https://support.huaweicloud.com/usermanual-ief/ief_01_0083.html#section0)中x86_64架构所支持的OS。 | 版本必须高于2.17。 | 安装时带宽： \>=10MByte/s 运行时带宽： \>=5Mbit/s | 3          |
   | 专业版            | 8        | 1   | \>=8  | \>=32 | \>=350          | \>=100 | \>=400 | \>=200 | 仅支持x86_64架构，具体支持的OS请参见[IEF边缘节点规格要求](https://support.huaweicloud.com/usermanual-ief/ief_01_0083.html#section0)中x86_64架构所支持的OS。 | 版本必须高于2.17。 | 安装时带宽： \>=10MByte/s 运行时带宽： \>=5Mbit/s | 8          |
   | API网关边缘实例（基础版） | 5        | 1   | \>=4  | \>=8  | \>=350          | \>=100 | \>=200 | \>=200 | 仅支持x86_64架构，具体支持的OS请参见[IEF边缘节点规格要求](https://support.huaweicloud.com/usermanual-ief/ief_01_0083.html#section0)中x86_64架构所支持的OS。 | 版本必须高于2.17。 | 安装时带宽： \>=10MByte/s 运行时带宽： \>=5Mbit/s | 5          |
   | API网关边缘实例（专业版） | 6        | 1   | \>=4  | \>=8  | \>=350          | \>=100 | \>=200 | \>=200 | 仅支持x86_64架构，具体支持的OS请参见[IEF边缘节点规格要求](https://support.huaweicloud.com/usermanual-ief/ief_01_0083.html#section0)中x86_64架构所支持的OS。 | 版本必须高于2.17。 | 安装时带宽： \>=10MByte/s 运行时带宽： \>=5Mbit/s | 6          |
   | API网关边缘实例（企业版） | 7        | 1   | \>=4  | \>=8  | \>=350          | \>=100 | \>=200 | \>=200 | 仅支持x86_64架构，具体支持的OS请参见[IEF边缘节点规格要求](https://support.huaweicloud.com/usermanual-ief/ief_01_0083.html#section0)中x86_64架构所支持的OS。 | 版本必须高于2.17。 | 安装时带宽： \>=10MByte/s 运行时带宽： \>=5Mbit/s | 7          |
   | API网关边缘实例（铂金版） | 9        | 1   | \>=8  | \>=16 | \>=350          | \>=100 | \>=200 | \>=200 | 仅支持x86_64架构，具体支持的OS请参见[IEF边缘节点规格要求](https://support.huaweicloud.com/usermanual-ief/ief_01_0083.html#section0)中x86_64架构所支持的OS。 | 版本必须高于2.17。 | 安装时带宽： \>=10MByte/s 运行时带宽： \>=5Mbit/s | 9          |
      
   表2业务流增强版 
   | 实例规格          | 虚拟机数量（台） | VIP | CPU   | 内存（G） | 磁盘io(读+写）（MB/s） | 系统盘（G） | 数据盘（G） | 日志盘（G） | 系统架构                                                                                                                            | Glibc版本     | 网络带宽性能                                                                                                                            | IEF容器应用（个） |
   |:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
   | 基础版（站点规格为简易型） | 5        | 1   | \>=16 | \>=64 | \>=350          | \>=100 | \>=300 | \>=200 | 仅支持x86_64架构，具体支持的OS请参见[IEF边缘节点规格规格要求](https://support.huaweicloud.com/usermanual-ief/ief_01_0083.html#section0)中x86_64架构所支持的OS。 | 版本必须高于2.17。 | 安装时带宽： \>=10MByte/s 运行时带宽： \>=5Mbit/s | 26         |
   | 专业版（站点规格为标准型） | 10       | 1   | \>=8  | \>=32 | \>=350          | \>=100 | \>=400 | \>=200 | 仅支持x86_64架构，具体支持的OS请参见[IEF边缘节点规格规格要求](https://support.huaweicloud.com/usermanual-ief/ief_01_0083.html#section0)中x86_64架构所支持的OS。 | 版本必须高于2.17。 | 安装时带宽： \>=10MByte/s 运行时带宽： \>=5Mbit/s | 29         |
      
   **规划的VIP需要与边缘节点的前两台虚拟机进行绑定。例如，编号为node-xxxx-000和node-xxxx-001或node-xxxx-001和node-xxxx-002的两台虚拟机。**
   
2. 安装Docker。
   Docker版本必须高于17.06，推荐使用18.06.3版本。请勿使用18.09.0版本Docker，如果已使用此版本，请尽快升级。离线安装包获取与安装请参考[离线版软件获取与安装方法]。
   Docker安装完成后，可以执行**docker -v**命令检查Docker是否安装正常，如果回显如下则说明安装正常。
   ```
   # docker -v 
   Docker version 18.06.3, build 48a66213fee
   ```
   
3. 安装Haveged。
   - 私网安装：离线安装包获取与安装请参考[离线版软件获取与安装方法]。
     安装Haveged（根据实际版本修改）：**rpm -ivh haveged-1.9.13-3.oe1.x86_64.rpm**
     开机启动：**systemctl enable haveged**
     重启：**service haveged restart**
     查看服务状态：**service haveged status**
     
   
   
   
   - 公网安装：使用yum源安装Haveged。 安装前置依赖：**yum install epel-release**
     安装Haveged：**yum install haveged**
     开机启动：**systemctl enable haveged**
     重启：**service haveged restart**
     查看服务状态：**service haveged status**
     
    
4. 磁盘挂载。 以下操作需在每台虚拟机上都执行。
   1. 以root用户登录待挂载虚拟机。
   
   2. 查看磁盘情况。
      ```
      fdisk -l
      ```
      系统显示如下类似信息表示系统有两个磁盘，一个是空间大小300G盘符为/dev/vdb的磁盘，一个是空间大小200G盘符为/dev/vdc的磁盘，需将300G磁盘/dev/vdb挂载到/opt/roma/data目录，将200G磁盘/dev/vdc挂载到/opt/roma/logs目录下。
      ```
      Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disklabel type: dos
      Disk identifier: 0x1bec7a05
      Device     Boot Start      End  Sectors Size Id Type
      /dev/vda1  *     2048 83886079 83884032  40G 83 Linux
      Disk /dev/vdb: 300 GiB, 322122547200 bytes, 629145600 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk /dev/vdc: 200 GiB, 214748364800 bytes, 419430400 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      ```
      
   
   3. 格式化磁盘。
      **mkfs.ext4 /dev/vdb**
      **mkfs.ext4 /dev/vdc**
      
   
   4. 建立挂载目录。 **mkdir -p /opt/roma/data**
      **mkdir -p /opt/roma/logs**
      
   
   5. 将磁盘挂载到指定目录。 **mount /dev/vdb /opt/roma/data**
      **mount /dev/vdc /opt/roma/logs**
      
   
   6. 配置磁盘分区自动挂载。 **vi /etc/fstab**
      增加如下配置：
      ```
      /dev/vdb                    /opt/roma/data           ext4       defaults              0 0
      /dev/vdc                    /opt/roma/logs           ext4       defaults              0 0
      ```
      
   
   7. 查看挂载是否成功。 **df -hT**
      系统显示如下内容表示挂载成功。
      ```
      Filesystem      Size  Used Avail Use% Mounted on
      devtmpfs         63G     0   63G   0% /dev
      tmpfs            63G     0   63G   0% /dev/shm
      tmpfs            63G  8.6M   63G   1% /run
      tmpfs            63G     0   63G   0% /sys/fs/cgroup
      /dev/vda1        40G  7.9G   30G  22% /
      tmpfs            13G     0   13G   0% /run/user/0
      /dev/vdb        295G   65M  280G   1% /opt/roma/data
      /dev/vdc        196G   61M  186G   1% /opt/roma/logs
      ```
      
    
5. 时间同步。
   边缘节点时间需要与**UTC+8** 时间保持一致，否则会导致边缘节点的监控数据、日志上传出现偏差。您可以选择合适的NTP服务器进行时间同步，从而保持时间一致。配置方法可参考[如何同步NTP服务器](https://support.huaweicloud.com/ief_faq/ief_faq_0053.html)中的操作步骤。
   离线安装包获取与安装请参考[离线版软件获取与安装方法]。
   
6. 检查hosts环境信息是否配置了hostname的地址映射。 在操作系统中执行**hostname** 和**cat /etc/hosts**，如果回显了hostname的地址映射，说明配置正常，否则请在hosts文件中添加hostname配置。
   例如，执行hostname命令后显示虚拟机名称为machine001，则需要在该虚拟机的/etc/hosts配置文件中添加如下配置**：**
   ```
   127.0.0.1  machine001  machine001
   ```
   
7. 检查是否开放ROMA Site侧需要的端口。 用户准备好虚拟机资源后，需要检查虚拟机是否开放了各组件需要的端口，具体端口信息如下：
   其中，80、443、9092、9094、1883、8443为对外服务端口，7000、40001-40010为与华为云通信端口，需要保证这些端口对外互通，其余端口保持内部互通。
   表3各组件开放的端口 
   | 组件   | 端口                                                                                                                                                         |
   |:---|:---|
   | FDI  | 9101、9011、9031、9051、9061、9071、9111、9121、9131、9141、9171、9271、9281、9351、9451、9461、9471、9561、9571、9611、9641、9642、9651、9652、9681、9682、9802、9541、9551、9581、9591 |
   | APIC | 80、443、1026、1027、22379、8086、8084、2379、4001、2380、6800、26800                                                                                                 |
   | MQS  | 9091、9092/9093、9094、2181、3888、2888、8001、8002、8003、9080、 12345、12346、9776、20911、19091、19092、19094、12181、13888、12888、18001                                   |
   | LINK | 7443、30006、1883、8443、8491                                                                                                                                  |
   | BFS  | 30608、30618                                                                                                                                                |
   | 以上组件中，FDI、APIC、MQS、LINK为必选组件，BFS为增强版可选组件。                                                                                                                        ||
      
   
8. 检查与IEF、SWR、OBS和AOM四个服务通信。如果您的虚拟机节点所在环境配置了网闸或网络限制，可以根据[如何获取IEF云端服务IP地址](https://support.huaweicloud.com/ief_faq/ief_faq_0056.html)获取IP地址进行配置。
 
 #### 离线版软件获取与安装方法
获取软件RPM离线安装包需要找一台能正常访问外网且能使用yum源的机器，通过下面的方法获取。
1. 获取Docker安装包及依赖。
   1. 更新yum缓存。
      ```
      yum makecache fast
      ```
      
   
   2. 下载所有依赖到指定路径下。
      ```
      mkdir -p /home/dockerrpm/
      yum install docker-ce --downloadonly --downloaddir=/home/dockerrpm/
      ```
      
   
   3. 将Docker安装包及依赖打包。
      ```
      tar zcvf docker-ce-20.tar.gz /home/dockerrpm/*
      ```
      
   
   4. 上传到所有边缘节点后解压安装。
      ```
      tar zxvf docker-ce-20.tar.gz
      cd dockerrpm
      rpm -ivh *.rpm --force --nodeps
      ```
      
    

2. 获取Haveged安装包。 下载离线安装包：
   ```
   yum -y install haveged --downloadonly
   ```
   

3. 获取NTP安装包。 下载离线安装包：
   ```
   yum -y install ntp --downloadonly
   ```
   
4. 从机器上导出上面下载的RPM包，再通过内网导入到所有边缘节点上进行安装。
 
#### 重新创建ROMA Site实例
如果您是在已创建过ROMA Site实例，且实例已删除的虚拟机上重新创建ROMA Site实例，则需执行以下操作。
1. 以root用户分别登录所有虚拟机。
2. 执行以下命令清除已删除实例遗留的数据。 # **rm -rf /opt/roma/data/dms**
   #**rm -rf /opt/roma/data/kafka**
   
 
