你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Linux on Azure 的 SAP BusinessObjects BI 平台部署指南

本文将介绍在适用于 Linux 的 Azure 上部署 SAP BusinessObjects BI (BOBI) 平台的策略。 在此示例中,你将配置两台以高级固态硬盘 (SSD) 托管磁盘作为安装目录的虚拟机。 将 Azure Database for MySQL 用于 CMS 数据库,并将文件存储库服务器的 Azure NetApp 文件在两个服务器之间共享。 在这两台虚拟机上,你将同时安装默认 Tomcat Java Web 应用程序和 BI 平台应用程序。 为了对用户请求进行负载均衡,你将使用包含本机 TLS/SSL 卸载功能的 Azure 应用程序网关。

这种体系结构适用于小型部署或非生产环境。 对于大型部署或生产环境,你可以为 Web 应用程序提供单独的主机。 还可以提供多个 BOBI 应用程序主机,使服务器能够处理更多信息。

Diagram of the SAP BOBI deployment on Azure for Linux

下面是此示例使用的产品版本和文件系统布局:

  • SAP BusinessObjects 平台 4.3
  • SUSE Linux Enterprise Server 12 SP5
  • Azure Database for MySQL(版本:8.0.15)
  • MySQL C API Connector - libmysqlclient(版本:6.1.11)
文件系统 说明 大小(GB) “所有者” 存储
/usr/sap 用于安装 SAP BOBI 实例、默认 Tomcat Web 应用程序和数据库驱动程序的文件系统(如有必要)。 SAP 大小调整准则 bl1adm sapsys 托管高级磁盘 - SSD
/usr/sap/frsinput 装载目录适用于将用作输入文件存储库目录的所有 BOBI 主机上的共享文件。 业务需求 bl1adm sapsys Azure NetApp 文件
/usr/sap/frsoutput 装载目录适用于将用作输出文件存储库目录的所有 BOBI 主机上的共享文件 业务需求 bl1adm sapsys Azure NetApp 文件

重要

虽然 SAP BusinessObjects 平台的设置使用Azure NetApp 文档进行说明,但可以在Azure 文件存储上使用 NFS 作为输入和输出文件存储库。

通过 Azure 门户部署 Linux 虚拟机

在本部分中,你将使用 Linux 操作系统映像为 SAP BOBI 平台创建两台虚拟机。 用于创建虚拟机的概括性步骤如下所示:

  1. 创建资源组

  2. 创建虚拟网络

    • 请不要在 SAP BI 平台部署中为所有 Azure 服务使用一个子网。 基于 SAP BI 平台体系结构,需要创建多个子网。 在此部署中,你将创建三个子网:分别用于应用程序、文件存储库存储和应用程序网关。
    • 在 Azure 中,应用程序网关和 Azure NetApp 文件必须始终位于单独的子网中。 有关详细信息,请参阅 Azure 应用程序网关Azure NetApp 文件网络规划准则
  3. 根据 Azure 区域中的首选系统配置,选择适当的 可用性选项 ,无论它涉及跨区域、驻留在单个区域中还是在无区域区域中运行。

  4. 创建虚拟机 1,名称为 (azusbosl1)。

  5. 创建虚拟机 2,名称为 (azusbosl2)。

  6. 添加一个高级 SSD 盘。 你将把它用作 SAP BOBI 安装目录。

预配 Azure NetApp 文件

在继续设置 Azure NetApp 文件之前,请先熟悉 Azure NetApp 文件文档

Azure NetApp 文件在多个 Azure 区域中可用。 查看所选 Azure 区域是否提供 Azure NetApp 文件。

使用各 Azure 区域的 Azure NetApp 文件可用性查看各区域的 Azure NetApp 文件可用性。

部署 Azure NetApp 文件资源

以下说明假定你已部署 Azure 虚拟网络。 Azure NetApp 文件资源和将装载 Azure NetApp 文件资源的 VM 必须部署在同一 Azure 虚拟网络或对等 Azure 虚拟网络中。

  1. 在所选的 Azure 区域创建 Azure NetApp 文件帐户

  2. 设置 Azure NetApp 文件容量池。 本文中介绍的 SAP BI 平台体系结构使用“高级”服务级别的单个 Azure NetApp 文件容量池。 对于 Azure 上的 SAP BI 文件存储库服务器,建议使用 Azure NetApp 文件“高级”或“超高性能”服务级别

  3. 将子网委托给 Azure NetApp 文件

  4. 按照为 Azure NetApp 文件创建 NFS 卷中的说明部署 Azure NetApp 文件卷。

    可以将卷部署为 NFSv3 和 NFSv4.1,因为 SAP BOBI 平台支持这两种协议。 将卷部署在其各自的 Azure NetApp 文件子网中。 将自动分配 Azure NetApp 文件卷的 IP 地址。

请记住,Azure NetApp 文件资源和 Azure VM 必须位于同一 Azure 虚拟网络或对等 Azure 虚拟网络中。 例如,azusbobi-frsinput 和 azusbobi-frsoutput 是卷名,nfs://10.31.2.4/azusbobi-frsinput 和 nfs://10.31.2.4/azusbobi-frsoutput 是 Azure NetApp 文件卷的文件路径。

  • 卷 azusbobi-frsinput (nfs://10.31.2.4/azusbobi-frsinput)
  • 卷 azusbobi-frsoutput (nfs://10.31.2.4/azusbobi-frsoutput)

重要注意事项

在为 SAP BOBI 平台文件存储库服务器创建 Azure NetApp 文件时,请注意以下事项:

  • 最小容量池为 4 TiB。 容量池大小可以以 1 TiB 增量进行增加。
  • 最小卷大小为 100 GiB。
  • Azure NetApp 文件和所有虚拟机(将装载 Azure NetApp 文件卷)必须位于同一 Azure 虚拟网络中或同一区域中的对等虚拟网络中。 支持通过同一区域中的虚拟网络对等互连进行 Azure NetApp 文件访问。 目前不支持通过全球对等互连进行 Azure NetApp 文件访问。
  • 所选的虚拟网络必须具有一个委派给 Azure NetApp 文件的子网。
  • Azure NetApp 文件卷的吞吐量和性能特征取决于卷配额和服务级别,如 Azure NetApp 文件的服务级别中所述。 调整 SAP Azure NetApp 卷的大小时,请确保生成的吞吐量满足应用程序要求。
  • 通过 Azure NetApp 文件导出策略,可以对允许的客户端、访问类型(例如读写或只读)进行控制。
  • Azure NetApp 文件功能尚没有区域感知性。 目前,该功能未在 Azure 区域中的所有可用性区域中部署。 请注意某些 Azure 区域的潜在延迟影响。
  • Azure NetApp 文件卷可以部署为 NFSv3 或 NFSv4.1 卷。 SAP BI 平台应用程序支持这两种协议。

在 Linux 服务器上配置文件系统

本部分中的步骤使用以下前缀:

[A] :该步骤适用于所有主机。

格式化和装载 SAP 文件系统

  1. [A] 列出所有附加的磁盘。

    sudo lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   30G  0 disk
    ├─sda1   8:1    0    2M  0 part
    ├─sda2   8:2    0  512M  0 part /boot/efi
    ├─sda3   8:3    0    1G  0 part /boot
    └─sda4   8:4    0 28.5G  0 part /
    sdb      8:16   0   32G  0 disk
    └─sdb1   8:17   0   32G  0 part /mnt
    sdc      8:32   0  128G  0 disk
    sr0     11:0    1  628K  0 rom  
    # Premium SSD of 128 GB is attached to virtual machine, whose device name is sdc
    
  2. [A] 对 /usr/sap 的块设备进行格式设置。

    sudo mkfs.xfs /dev/sdc
    
  3. [A] 创建装载目录。

    sudo mkdir -p /usr/sap
    
  4. [A] 获取块设备的 UUID。

    sudo blkid
    
    # It will display information about block device. Copy UUID of the formatted block device
    
    /dev/sdc: UUID="0eb5f6f8-fa77-42a6-b22d-7a9472b4dd1b" TYPE="xfs"
    
  5. [A] 维护 /etc/fstab 中的文件系统装载条目。

    sudo echo "UUID=0eb5f6f8-fa77-42a6-b22d-7a9472b4dd1b /usr/sap xfs defaults,nofail 0 2" >> /etc/fstab
    
  6. [A] 装载文件系统。

    sudo mount -a
    
    sudo df -h
    
    Filesystem                     Size  Used Avail Use% Mounted on
    devtmpfs                       7.9G  8.0K  7.9G   1% /dev
    tmpfs                          7.9G   82M  7.8G   2% /run
    tmpfs                          7.9G     0  7.9G   0% /sys/fs/cgroup
    /dev/sda4                       29G  1.8G   27G   6% /
    tmpfs                          1.6G     0  1.6G   0% /run/user/1000
    /dev/sda3                     1014M   87M  928M   9% /boot
    /dev/sda2                      512M  1.1M  511M   1% /boot/efi
    /dev/sdb1                       32G   49M   30G   1% /mnt
    /dev/sdc                       128G   29G  100G  23% /usr/sap
    

装载 Azure NetApp 文件卷

  1. [A] 创建装载目录。

    sudo mkdir -p /usr/sap/frsinput
    sudo mkdir -p /usr/sap/frsoutput
    
  2. [A] 将客户端操作系统配置为支持 NFSv4.1 装载(仅当使用 NFSv4.1 时适用)。

    如果要将 Azure NetApp 文件卷和 NFSv4.1 协议一起使用,请在需要装入 Azure NetApp 文件 NFSv4.1 卷的所有 VM 上运行以下配置。

    在此步骤中,需要验证 NFS 域设置。 请确保域配置为默认的 Azure NetApp 文件域 (defaultv4iddomain.com),并且映射设置为 nobody

    sudo cat /etc/idmapd.conf
    # Example
    [General]
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    

    重要

    确保在 VM 上的 /etc/idmapd.conf 中设置 NFS 域,以匹配 Azure NetApp 文件上的默认域配置 (defaultv4iddomain.com)。 如果不匹配,则装载在 VM 上的 Azure NetApp 文件卷的文件权限将显示为 nobody

    验证 nfs4_disable_idmapping。 它应设置为 Y。 若要创建 nfs4_disable_idmapping 所在的目录结构,请运行 mount 命令。 无法在 /sys/modules 下手动创建目录,因为访问权限是为内核/驱动程序保留的。

    # Check nfs4_disable_idmapping
    cat /sys/module/nfs/parameters/nfs4_disable_idmapping
    
    # If you need to set nfs4_disable_idmapping to Y
    mkdir /mnt/tmp
    mount -t nfs -o sec=sys,vers=4.1 10.31.2.4:/azusbobi-frsinput /mnt/tmp
    umount /mnt/tmp
    
    echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
    # Make the configuration permanent
    echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
    
  3. [A] 添加装载条目。

    如果使用 NFSv3:

    sudo echo "10.31.2.4:/azusbobi-frsinput /usr/sap/frsinput  nfs   rw,hard,rsize=65536,wsize=65536,vers=3" >> /etc/fstab
    sudo echo "10.31.2.4:/azusbobi-frsoutput /usr/sap/frsoutput  nfs   rw,hard,rsize=65536,wsize=65536,vers=3" >> /etc/fstab
    

    如果使用 NFSv4.1:

    sudo echo "10.31.2.4:/azusbobi-frsinput /usr/sap/frsinput  nfs   rw,hard,rsize=65536,wsize=65536,vers=4.1,sec=sys" >> /etc/fstab
    sudo echo "10.31.2.4:/azusbobi-frsoutput /usr/sap/frsoutput  nfs   rw,hard,rsize=65536,wsize=65536,vers=4.1,sec=sys" >> /etc/fstab
    
  4. [A] 装载 NFS 卷。

    sudo mount -a
    
    sudo df -h
    
    Filesystem                     Size  Used Avail Use% Mounted on
    devtmpfs                       7.9G  8.0K  7.9G   1% /dev
    tmpfs                          7.9G   82M  7.8G   2% /run
    tmpfs                          7.9G     0  7.9G   0% /sys/fs/cgroup
    /dev/sda4                       29G  1.8G   27G   6% /
    tmpfs                          1.6G     0  1.6G   0% /run/user/1000
    /dev/sda3                     1014M   87M  928M   9% /boot
    /dev/sda2                      512M  1.1M  511M   1% /boot/efi
    /dev/sdb1                       32G   49M   30G   1% /mnt
    /dev/sdc                       128G   29G  100G  23% /usr/sap
    10.31.2.4:/azusbobi-frsinput   101T   18G  100T   1% /usr/sap/frsinput
    10.31.2.4:/azusbobi-frsoutput  100T  512K  100T   1% /usr/sap/frsoutput
    

配置 Azure Database for MySQL

本部分提供有关如何使用 Azure 门户预配 Azure Database for MySQL 的详细信息。 它还提供了有关如何为 SAP BOBI 平台创建 CMS 和审核数据库的说明,以及如何创建用于访问数据库的用户帐户。

仅当使用 Azure Database for MySQL 时,这些准则才适用。 关于其他数据库,请参阅 SAP 或数据库特定的文档以了解相关说明。

创建数据库

登录到 Azure 门户,并按照快速入门:使用 Azure 门户创建 Azure Database for MySQL 服务器中的步骤执行操作。 下面是预配 Azure Database for MySQL 时的几点注意事项:

  • 为 Azure Database for MySQL 选择 SAP BI 平台应用程序服务器运行于的区域。

  • 根据 SAP BI 产品可用性矩阵 (PAM) 选择特定于你的 SAP BOBI 版本的受支持的数据库版本。

  • 在“计算 + 存储”中,选择“配置服务器”,并根据调整大小的输出选择适当的定价层。

  • 默认启用存储自动增长。 请记住,存储只能扩展,而不能缩减。

  • 默认情况下,“备份保留期”为七天。 可以选择配置为长达 35 天。

  • 默认情况下,在本地冗余备份 Azure Database for MySQL。 如果要在异地冗余存储中进行服务器备份,请从“备份冗余选项”中选择“异地冗余”。

重要

不支持在创建服务器后更改备份冗余选项

注意

专用链接功能仅适用于“常规用途”或“内存优化”定价层中的 Azure Database for MySQL 服务器。 请确保数据库服务器位于其中一个定价层中。

在本节中,你将创建一个专用链接,该链接允许 SAP BOBI 虚拟机通过专用终结点连接到 Azure Database for MySQL。 Azure 专用链接可将 Azure 服务引入到你的专用虚拟网络中。

  1. 选择在上一部分创建的数据库。
  2. 转到“安全”>“专用终结点连接”。
  3. 在“专用终结点连接”中,选择“专用终结点”。
  4. 选择“订阅”>“资源组”>“位置” 。
  5. 输入专用终结点的名称。
  6. “资源 ”部分中,指定以下内容:
    • 资源类型:Microsoft.DBforMySQL/服务器
    • 资源:在上一部分创建的 MySQL 数据库
    • 目标子资源:mysqlServer
  7. 在“网络”部分中,选择将部署 SAP BOBI 应用程序的虚拟网络和子网。

    注意

    如果已为子网启用网络安全组 (NSG),则系统将只对该子网上的专用终结点禁用 NSG。 子网中的其他资源仍将强制使用 NSG。

  8. 对于“与专用 DNS 区域集成”,接受“默认值(是)” 。
  9. 从下拉列表中选择“专用 DNS 区域”。
  10. 选择“查看 + 创建”并创建专用终结点。

有关详细信息,请参阅 Azure Database for MySQL 的专用链接

创建 CMS 和审核数据库

  1. MySQL 网站下载并安装 MySQL Workbench。 请确保在可访问 Azure Database for MySQL 的服务器上安装 MySQL Workbench。

  2. 使用 MySQL Workbench 连接服务器。 按照获取连接信息中的说明进行操作。 如果连接测试成功,你会收到以下消息:

    Screenshot of message in MySQL Workbench.

  3. 在“SQL 查询”选项卡中运行以下查询,为 CMS 和审核数据库创建架构。

    # Here cmsbl1 is the database name of CMS database. You can provide the name you want for CMS database.
    CREATE SCHEMA `cmsbl1` DEFAULT CHARACTER SET utf8;
    
    # auditbl1 is the database name of Audit database. You can provide the name you want for CMS database.
    CREATE SCHEMA `auditbl1` DEFAULT CHARACTER SET utf8;
    
  4. 创建用于连接到架构的用户帐户。

    # Create a user that can connect from any host, use the '%' wildcard as a host part
    CREATE USER 'cmsadmin'@'%' IDENTIFIED BY 'password';
    CREATE USER 'auditadmin'@'%' IDENTIFIED BY 'password';
    
    # Grant all privileges to a user account over a specific database:
    GRANT ALL PRIVILEGES ON cmsbl1.* TO 'cmsadmin'@'%' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON auditbl1.* TO 'auditadmin'@'%' WITH GRANT OPTION;
    
    # Following any updates to the user privileges, be sure to save the changes by issuing the FLUSH PRIVILEGES
    FLUSH PRIVILEGES;
    
  5. 若要查看 MySQL 用户帐户的特权和角色,请执行以下操作:

    USE sys;
    SHOW GRANTS for 'cmsadmin'@'%';
    +------------------------------------------------------------------------+
    | Grants for cmsadmin@%                                                  |
    +------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO `cmsadmin`@`%`                                   |
    | GRANT ALL PRIVILEGES ON `cmsbl1`.* TO `cmsadmin`@`%` WITH GRANT OPTION |
    +------------------------------------------------------------------------+
    
    USE sys;
    SHOW GRANTS FOR 'auditadmin'@'%';
    +----------------------------------------------------------------------------+
    | Grants for auditadmin@%                                                    |
    +----------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO `auditadmin`@`%`                                     |
    | GRANT ALL PRIVILEGES ON `auditbl1`.* TO `auditadmin`@`%` WITH GRANT OPTION |
    +----------------------------------------------------------------------------+
    

在 Linux 服务器上安装 MySQL C API 连接器

要使 SAP BOBI 应用程序服务器能够访问数据库,需要数据库客户端驱动程序。 若要访问 CMS 和审核数据库,必须使用适用于 Linux 的 MySQL C API 连接器。 不支持与 CMS 数据库的 ODBC 连接。 本部分提供有关如何在 Linux 上设置 MySQL C API 连接器的说明。

  1. 请参阅与 Azure Database for MySQL 兼容的 MySQL 驱动程序和管理工具。 请参阅文章中的“MySQL 连接器/C (libmysqlclient)”驱动程序。

  2. 若要下载驱动程序,请参阅 MySQL 产品存档

  3. 选择操作系统并下载 MySQL 连接器的共享组件 rpm 包。 在此示例中,使用了 mysql-connector-c-shared-6.1.11 连接器版本。

  4. 在所有 SAP BOBI 应用程序实例中安装连接器。

    # Install rpm package
    SLES: sudo zypper install <package>.rpm
    RHEL: sudo yum install <package>.rpm
    
  5. 检查 libmysqlclient.so 的路径。

    # Find the location of libmysqlclient.so file
    whereis libmysqlclient
    
    # sample output
    libmysqlclient: /usr/lib64/libmysqlclient.so
    
  6. LD_LIBRARY_PATH 设置为指向将用于安装的用户帐户的 /usr/lib64 目录。

    # This configuration is for bash shell. If you are using any other shell for sidadm, kindly set environment variable accordingly.
    vi /home/bl1adm/.bashrc
    
    export LD_LIBRARY_PATH=/usr/lib64
    

服务器准备

本部分中的步骤使用以下前缀:

[A] :该步骤适用于所有主机。

  1. [A] 根据 LINUX 的风格 (SLES 或 RHEL),需要设置内核参数并安装所需的库。 请参阅适用于 Unix 的商业智能平台安装指南中的“系统要求”部分。

  2. [A] 确保计算机上的时区设置正确。 请参阅安装指南中的其他 Unix 和 Linux 要求

  3. [A] 创建软件的后台进程在其下运行的用户帐户 (bl1adm) 和组 (sapsys)。 使用此帐户运行安装及软件。 此帐户不需要 root 权限。

  4. [A] 设置用户帐户 (bl1adm) 环境以使用支持的 UTF-8 区域设置,并确保控制台软件支持 UTF-8 字符集。 若要确保操作系统使用正确的区域设置,请在 (bl1adm) 用户环境中将 LC_ALLLANG 环境变量设置为你的首选区域设置。

    # This configuration is for bash shell. If you are using any other shell for sidadm, kindly set environment variable accordingly.
    vi /home/bl1adm/.bashrc
    
    export LANG=en_US.utf8
    export LC_ALL=en_US.utf8
    
  5. [A] 配置用户帐户 (bl1adm)。

    # Set ulimit for bl1adm to unlimited
    root@azusbosl1:~> ulimit -f unlimited bl1adm
    root@azusbosl1:~> ulimit -u unlimited bl1adm
    
    root@azusbosl1:~> su - bl1adm
    bl1adm@azusbosl1:~> ulimit -a
    
    core file size          (blocks, -c) unlimited
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 63936
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 1024
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) unlimited
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    
  6. 从 SAP 服务市场下载并提取 SAP BusinessObjects BI 平台的媒体。

安装

检查服务器上用户帐户 bl1adm 的区域设置:

bl1adm@azusbosl1:~> locale
LANG=en_US.utf8
LC_ALL=en_US.utf8

转到 SAP BOBI 平台的媒体并使用 bl1adm 用户运行以下命令:

./setup.sh -InstallDir /usr/sap/BL1

遵循特定于你的版本的适用于 Unix 的 SAP BOBI 平台安装指南。 安装 SAP BOBI 平台时,请注意以下几点:

  • 在“配置产品注册”上,你可以使用 SAP 说明 1288121 中的 SAP BusinessObjects 解决方案临时许可密钥,也可以在 SAP 服务市场中生成许可密钥。

  • 在“选择安装类型”上,在第一台服务器 (azusbosl1) 上选择“完全”安装 。 对于其他服务器 (azusbosl2),选择“自定义/扩展”,这将扩展现有 BOBI 设置。

  • 在“选择默认或现有数据库”上,选择“配置现有数据库”,这将提示你选择 CMS 和审核数据库。 为这些数据库类型选择“MySQL”。

    如果不想在安装期间配置审核,还可以选择“无审核数据库”。

  • 在“选择 Java Web 应用程序服务器”屏幕上,根据你的 SAP BOBI 体系结构选择适当的选项。 在此示例中,我们选择了选项 1,它在同一 SAP BOBI 平台上安装 tomcat 服务器。

  • 在“配置 CMS 存储库数据库 - MySQL”中输入 CMS 数据库信息。 以下示例显示了用于 Linux 安装的 CMS 数据库信息的输入。 Azure Database for MySQL 用于默认端口 3306。

    Screenshot that shows SAP BOBI Deployment on Linux - CMS database.

  • (可选)在“配置审核存储库数据库 - MySQL”中输入审核数据库信息。 以下示例显示了用于 Linux 安装的审核数据库信息的输入。

    Screenshot that shows SAP BOBI Deployment on Linux - audit database.

  • 按照说明,提供所需的输入来完成安装。

对于多实例部署,请在第二个主机 (azusbosl2) 上运行安装程序。 对于“选择安装类型”,选择“自定义/扩展”,这将扩展现有 BOBI 设置。

在 Azure Database for MySQL 中,网关可重定向与服务器实例的连接。 建立连接后,MySQL 客户端显示网关中设置的 MySQL 版本,而不是 MySQL 服务器实例上运行的实际版本。 若要确定 MySQL 服务器实例的版本,可在 MySQL 提示符处使用 SELECT VERSION(); 命令。 有关详细信息,请参阅支持的 Azure Database for MySQL 服务器版本

Screenshot that shows SAP BOBI Deployment on Linux - CMC Settings.

# Run direct query to the database using MySQL Workbench

select version();

+-----------+
| version() |
+-----------+
| 8.0.15    |
+-----------+

安装后

SAP BOBI 平台的多实例安装完成后,需要执行额外的后配置步骤来支持应用程序的高可用性。

配置群集名称

在 SAP BOBI 平台的多实例部署中,你想要在群集中同时运行多个 CMS 服务器。 一个群集由两个或更多 CMS 服务器组成,这些服务器在一个通用 CMS 系统数据库上协同工作。 如果在 CMS 上运行的某个节点出现故障,则另一个 CMS 上的节点将继续为 BI 平台请求提供服务。 默认情况下,在 SAP BOBI 平台中,群集名称反映的是你安装的第一个 CMS 的主机名。

若要在 Linux 上配置群集名称,请按照 SAP 商业智能平台管理员指南中的说明进行操作。 配置群集名称后,请按照 SAP 说明 1660440 在 CMC 或 BI 启动台登录页上设置默认的系统入口。

将输入和输出文件存储位置配置到 Azure NetApp 文件

文件存储是指实际的 SAP BusinessObjects 文件所在的磁盘目录。 SAP BOBI 平台的文件存储库服务器的默认位置位于本地安装目录中。 在多实例部署中,必须在共享存储(例如 Azure NetApp 文件)上设置文件存储。 这样便可以从所有存储层服务器访问文件存储。

  1. 如果尚未创建 NFS 卷,请在 Azure NetApp 文件中创建它们。 (请按照前面“预配 Azure NetApp 文件”一节中的说明进行操作。)

  2. 装载 NFS 卷。 (请按照前面“装载 Azure NetApp 文件卷”一节中的说明进行操作。)

  3. 按照 SAP 说明 2512660 更改文件存储库的路径(输入和输出)。

Tomcat 群集中的会话复制

Tomcat 支持将两个或更多应用程序服务器组成群集,用于会话复制和故障转移。 SAP BOBI 平台会话将进行序列化,这样即使应用程序服务器发生故障,用户会话也可以无缝地故障转移到另一个 Tomcat 实例。

例如,假设用户连接到的 web 服务器在用户在 SAP BI 应用程序中导航文件夹层次结构时失败。 通过正确配置的群集,用户可以继续导航文件夹层次结构,而无需重定向到登录页。

请参阅 SAP 说明 2808640,使用多播了解配置 Tomcat 群集的步骤。 但请注意,Azure 不支持多播。 因此,若要使 Tomcat 群集在 Azure 中可用,必须使用 StaticMembershipInterceptor(SAP 说明 2764907)。 有关详细信息,请参阅博客文章使用 SAP BUSINESSOBJECTS BI 平台的静态成员身份进行 Tomcat 群集操作

SAP BI 平台的负载均衡 web 层

在 SAP BOBI 多实例部署中,Java Web 应用程序服务器(web 层)在两个或更多主机上运行。 若要在 Web 服务器之间均匀分配用户负载,可以在最终用户与 Web 服务器之间使用负载均衡器。 在 Azure 中,可以使用 Azure 负载均衡器或 Azure 应用程序网关来管理 web 应用程序服务器的流量。 下一节将介绍有关每个产品的详细信息。

Azure 负载均衡器

Azure 负载均衡器是高性能、低延迟的第 4 层(TCP、UDP)负载均衡器。 它可在正常运行的虚拟机 (VM) 之间分配流量。 负载均衡器的运行状况探测监视每个 VM 上的指定端口,并仅将流量分配给可操作的 VM。 可以根据是否允许从 Internet 访问 SAP BI 平台,选择公共负载均衡器或内部负载均衡器。 它是区域冗余的,确保跨可用性区域的高可用性。

在以下示意图中,请参阅“内部负载均衡器”部分。 Web 应用程序服务器在端口 8080(默认 Tomcat HTTP 端口)上运行,该端口将由运行状况探测进行监视。 来自最终用户的任何传入请求都将重定向到 Web 应用程序服务器(azusbosl1azusbosl2)。 负载均衡器不支持 TLS/SSL 终止(也称为 TLS/SSL 卸载)。 如果使用负载均衡器将流量分配到 Web 服务器,请使用标准负载均衡器。

注意

如果没有公共 IP 地址的 VM 放在内部(无公共 IP 地址)标准负载均衡器的池中,就不会有出站 Internet 连接,除非执行额外的配置来允许路由到公共终结点。 有关详细信息,请参阅 SAP 高可用性方案中使用 Azure 标准负载均衡器的虚拟机的公共终结点连接

Diagram that shows Azure Load Balancer balancing traffic across web servers.

Azure 应用程序网关

Azure 应用程序网关以服务形式提供应用程序传送控制器 (ADC)。 此服务用于帮助应用程序将用户流量重定向到一个或多个 Web 应用程序服务器。 它提供各种第 7 层负载均衡功能,例如 TLS/SSL 卸载、Web 应用程序防火墙 (WAF) 和基于 Cookie 的会话相关性。

在 SAP BI 平台中,应用程序网关将应用程序 Web 流量定向到指定资源 azusbosl1azusbos2。 你将向端口分配侦听器,创建规则,并向池中添加资源。 在以下示意图中,应用程序网关提供一个专用 IP 地址 (10.31.3.20),它充当用户的入口点。 它还处理传入 TLS/SSL (HTTPS - TCP/443) 连接,解密 TLS/SSL,并将未加密的请求 (HTTP-TCP/8080) 传递给服务器。 它简化了操作,只需在应用程序网关上维护一个 TLS/SSL 证书。

Diagram that shows Application Gateway balancing traffic across web servers.

若要为 SAP BOBI Web 服务器配置应用程序网关,请参阅博客文章使用 Azure 应用程序网关实现 SAP BOBI Web 服务器的负载均衡

注意

Azure 应用程序网关更适合对 Web 服务器的流量进行负载均衡。 它提供各种有用功能,例如 SSL 卸载、用于减少服务器加密和解密开销的集中式 SSL 管理、分配流量的循环算法、WAF 功能和高可用性。

Azure 上的 SAP BOBI 平台可靠性

SAP BOBI 平台包含不同的层,这些层针对特定任务和操作进行了优化。 当任何一层中的组件变为不可用时,SAP BOBI 应用程序将变得不可访问,或者某些功能将受限。 请确保每个层的可靠性,使应用程序可以正常运行而不会出现任何业务中断。

本指南将探讨应如何将 Azure 的原生功能与 SAP BOBI 平台配置相结合,以改进 SAP 部署的可用性。 本部分重点介绍以下选项:

  • 备份和还原: 将数据和应用程序的副本定期创建到单独位置的过程。 如果原始数据或应用程序丢失或损坏,可将其还原或恢复到以前的状态。

  • 高可用性: 高可用平台的所有组件在 Azure 区域中都至少有两个实例,这样,即使其中一个服务器不可用,也能使应用程序保持正常运行。

  • 灾难恢复: 这是在出现灾难性损失(例如由于某些自然灾害而导致整个 Azure 区域不可用)时还原应用程序功能的过程。

此解决方案的实现因 Azure 中系统设置的性质而异。 根据业务要求,为你定制备份/还原、高可用性和灾难恢复解决方案。

备份和还原

备份和还原是任何业务灾难恢复策略的基本组成部分。 若要为 SAP BOBI 平台开发全面的策略,请确定导致应用程序系统停机或中断的组件。 在 SAP BOBI 平台中,以下组件的备份对保护应用程序至关重要:

  • SAP BOBI 安装目录(托管高级磁盘)
  • 文件存储库服务器(Azure NetApp 文件或 Azure 高级文件)
  • CMS 数据库(Azure database for MySQL 或 Azure 虚拟机上的数据库)

以下部分介绍如何为每个组件实现备份和还原策略。

SAP BOBI 安装目录的备份和还原

在 Azure 中,备份应用程序服务器和所有附加磁盘的最简单方法是使用 Azure 备份。 它提供独立且隔离的备份来防止 VM 上的数据被意外破坏。 备份存储在提供恢复点内置管理的恢复服务保管库中。 配置和缩放很简单,备份经过优化,可以轻松地根据需要还原。

在备份过程中,将创建快照,并将数据传输到保管库,而不影响生产工作负载。 有关详细信息,请参阅快照一致性。 还可使用选择性磁盘备份和还原功能,选择备份 VM 中的一部分数据磁盘。 有关详细信息,请参阅 Azure VM 备份常见问题解答 - 备份 Azure VM

文件存储库服务器的备份和还原

根据 Linux 上的 SAP BOBI 部署,可以将 Azure NetApp 文件用作 SAP BOBI 平台的文件存储。 根据用于文件存储的存储点,从以下选项中选择备份和还原的方式。

  • Azure NetApp 文件: 可以创建按需快照,并使用快照策略安排自动拍摄快照。 快照副本提供卷的时间点副本。 有关详细信息,请参阅使用 Azure NetApp 文件管理快照

  • 如果已创建单独的 NFS 服务器,请确保为该服务器实现备份和还原策略。

适用于 CMS 和审核数据库的备份和还原

在 Linux VM 上,CMS 和审核数据库可以在任何受支持的数据库上运行。 有关详细信息,请参阅支持矩阵。 请务必根据用于 CMS 和审核数据存储的数据库来采用备份和还原策略。

  • Azure Database for MySQL 可自动创建服务器备份并将其存储在用户配置的本地冗余或异地冗余存储中。 Azure Database for MySQL 会创建数据文件和事务日志的备份。 根据支持的最大存储大小,将进行完整备份和差异备份(最大 4 TB 的存储服务器)或快照备份(最大 16 TB 的存储服务器)。 可以通过这些备份将服务器还原到所配置的备份保留期中的任意时间点。 默认备份保持期为 7 天,可以选择配置为 3 天。 所有备份都使用 AES 256 位加密进行加密。 这些备份文件不公开给用户,因此无法导出。 这些备份只能用于 Azure Database for MySQL 中的还原操作。 可以使用 mysqldump 复制数据库。 有关详细信息,请参阅在 Azure Database for MySQL 中进行备份和还原

  • 对于在 Azure 虚拟机上安装的数据库,可以为支持的数据库使用标准备份工具或 Azure 备份。 此外,还可以使用支持的第三方备份工具,为所有 SAP BOBI 平台组件的备份和还原提供代理。

高可用性

高可用性是一组技术,这些技术通过提供应用程序和服务的业务连续性来最大程度减少 IT 中断。 它通过同一数据中心内的冗余、容错或故障转移保护组件来实现。 在本例中,数据中心位于一个 Azure 区域内。 有关详细信息,请参阅适用于 SAP 的高可用性体系结构和方案

根据 SAP BOBI 平台的大小调整结果,你需要设计格局,并确定跨 Azure 虚拟机和子网的 BI 组件分布。 分布式体系结构中的冗余级别取决于业务所需的恢复时间目标 (RTO) 和恢复点目标 (RPO)。 SAP BOBI 平台包含不同的层,应对每个层上的组件进行设计以实现冗余。 例如:

  • 冗余应用程序服务器,如 BI 应用程序服务器和 Web 服务器。
  • CMS 数据库、文件存储库服务器、负载均衡器等独特组件。

下一部分介绍如何在 SAP BOBI 平台的每个组件上实现高可用性。

应用程序服务器的高可用性

可以通过冗余来实现应用程序服务器的高可用性。 为此,请在各种 Azure VM 中配置多个 BI 和 Web 服务器实例。

若要减少因计划内和计划外事件而导致停机的影响,最好遵循高可用性体系结构指南

有关详细信息,请参阅管理 Linux 虚拟机的可用性

重要

  • Azure 可用性区域和 Azure 可用性集的概念是互斥的。 可以将一对或多个 VM 部署到特定的可用性区域或可用性集中,但是不可以同时部署到两者中。
  • 如果计划跨可用性区域部署,建议通过标准可用性区域部署将灵活规模集与 FD=1 配合使用

CMS 数据库的高可用性

如果将 Azure Database for MySQL 用于 CMS 和审核数据库,则本地默认拥有冗余的高可用性框架。 只需选择区域和服务固有的高可用性、冗余和复原能力,无需配置任何其他组件。 如果 SAP BOBI 平台的部署策略跨可用性区域,则需要确保为 CMS 和审核数据库实现区域冗余。 有关详细信息,请参阅 Azure Database for MySQL 中的高可用性Azure SQL 数据库的高可用性

有关 CMS 数据库的其他部署,请参阅 SAP 工作负载的 DBMS 部署指南中的高可用性信息。

文件存储的高可用性

文件存储指存储报表、universe 和连接等内容的磁盘目录。 它在该系统的所有应用程序服务器之间共享。 因此,必须确保它与其他 SAP BOBI 平台组件都具有高可用性。

对于在 Linux 上运行的 SAP BOBI 平台,可以选择适用于文件分享的 Azure 高级文件Azure NetApp 文件,这些经专门设计的文件本质具有高可用性和高耐用性。 有关详细信息,请参阅 Azure 文件存储的冗余

请注意,此文件共享服务并非在所有区域都可用。 请参阅各区域的产品可用性查找最新信息。 如果该服务在你的区域中不可用,可以创建一个 NFS 服务器,并从中将文件系统共享给 SAP BOBI 应用程序。 但你还需要考虑其高可用性。

负载均衡器的高可用性

若要在 Web 服务器之间分配流量,可以使用 Azure 负载均衡器或 Azure 应用程序网关。 可根据你为部署选择的 SKU 来实现任一这些服务的冗余。

  • 对于 Azure 负载均衡器,可以通过将标准负载均衡器配置为区域冗余来实现冗余。 有关详细信息,请参阅标准负载均衡器和可用性区域

  • 对于应用程序网关,可以根据部署过程中选择的层类型来实现高可用性。

    • 如果部署了两个或更多实例,v1 SKU 支持高可用性方案。 Azure 跨更新域和容错域分配这些实例,确保实例不会全部同时发生故障。 实现区域内冗余。
    • v2 SKU 可以自动确保新实例分布到各个容错域和更新域中。 如果选择“区域冗余”,则最新实例还将分布到各个可用性区域中以提供区域性故障复原能力。 有关详细信息,请参阅自动缩放和区域冗余应用程序网关 v2

SAP BOBI BI 平台的参考高可用性体系结构

下图显示了在 Linux 服务器上运行的 SAP BOBI 平台的设置。 该体系结构显示了所使用的各种不同服务,例如 Azure 应用程序网关、Azure NetApp 文件以及 Azure Database for MySQL。 这些服务提供内置冗余,可降低管理不同高可用性解决方案的复杂性。

请注意,传入流量(HTTPS)使用 Azure 应用程序网关 v1/v2 SKU 进行负载均衡,在两个或多个实例上部署时,该 SKU 高度可用。 Web 服务器、管理服务器和处理服务器的多个实例部署在单独的 VM 中以实现冗余。 Azure NetApp 文件在数据中心内有内置冗余,因此文件存储库服务器的 Azure NetApp 文件卷将高度可用。 CMS 数据库预配于 Azure Database for MySQL 上,该服务具有固有的高可用性。 有关详细信息,请参阅 Azure Database for MySQL 中的高可用性

Diagram that shows SAP BusinessObjects BI platform redundancy with availability sets.

上述体系结构提供了有关如何在 Azure 上部署 SAP BOBI 的见解。 但它并未涵盖所有可能的配置选项。 可以根据业务要求定制部署。

可以在多个 Azure 区域中使用可用性区域。 这意味着可以利用独立的电源、冷却和网络供应。 这样便可以跨两个或三个可用性区域部署应用程序。 如果希望跨可用性区域实现高可用性,可以跨这些区域部署 SAP BOBI 平台,从而确保应用程序中的每个组件都是区域冗余的。

灾难恢复

本节将介绍为在 Linux 上运行的 SAP BOBI 平台提供灾难恢复保护的策略。 它补充了 SAP 的灾难恢复文档,该文档代表总体 SAP 灾难恢复方法的主要资源。 有关 SAP BOBI,请参阅 SAP 说明 2056228,其中描述了以下方法来安全地实现灾难恢复环境。

  • 完整或选择性使用生命周期管理或联合,以提升或分配来自主系统的内容。
  • 定期复制 CMS 和文件存储库服务器内容。

本指南重点介绍第二个选项。 其中不包含所有可能的灾难恢复配置选项,但涵盖与 SAP BOBI 平台配置结合使用原生 Azure 服务的解决方案。

重要

  • 在 SAP BOBI 平台中,每个组件的可用性都应在次要区域中纳入考虑范畴,且必须全面测试整个灾难恢复策略。
  • 如果 SAP BI 平台配置了具有 FD=1 的灵活规模集 ,则需要使用 PowerShell 为灾难恢复设置 Azure Site Recovery。 目前,它是为规模集中部署的 VM 配置灾难恢复的唯一方法。

SAP BOBI 平台的参考灾难恢复体系结构

此参考体系结构通过冗余的应用程序服务器运行 SAP BOBI 平台的多实例部署。 对于灾难恢复,应将 SAP BOBI 平台的所有组件故障转移到次要区域。 在以下示意图中,Azure NetApp 文件用作文件存储,Azure Database for MySQL 用作 CMS 和审核存储库,Azure 应用程序网关用作负载均衡器。 为每个组件实现灾难恢复保护的策略各不相同,下面各节将介绍这些不同之处。

Diagram that shows SAP BusinessObjects BI platform disaster recovery.

负载均衡器

负载均衡器用于在 SAP BOBI 平台的 Web 应用程序服务器之间分配流量。 在 Azure 中,可以使用 Azure 负载均衡器或 Azure 应用程序网关来实现这一目的。 若要为负载均衡器服务实现灾难恢复,需要在次要区域中实现另一个 Azure 负载均衡器或 Azure 应用程序网关。 若要在完成灾难恢复故障转移后保留相同的 URL,需要更改 DNS 中的条目,并指向在次要区域中运行的负载均衡服务。

运行 Web 和 BI 应用程序服务器的 VM

使用 Azure Site Recovery 在次要区域中复制运行 Web 和 BI 应用程序服务器的 VM。 它会将服务器及其中附加的所有托管磁盘复制到次要区域,以便在发生灾难和停机时,你可以轻松地将故障转移到复制的环境中,并继续工作。 若要开始将所有 SAP 应用程序 VM 复制到 Azure 灾难恢复数据中心,请按照将虚拟机复制到 Azure 中的指导进行操作。

文件存储库服务器

文件存储指磁盘目录,其中存储了报表和 BI 文档等实际文件。 文件存储中的所有文件都必须同步到灾难恢复区域,这一点很重要。 根据在 Linux 上运行的 SAP BOBI 平台所使用的文件共享服务类型,需要采用相应的灾难恢复策略来同步内容。

  • Azure NetApp 文件提供 NFS 和 SMB 卷,因此可使用任何基于文件的复制工具在 Azure 区域之间复制数据。 有关如何在另一个区域中复制卷的详细信息,请参阅关于 Azure NetApp 文件的常见问题解答

    可以使用 Azure NetApp 文件跨区域复制,该功能当前提供预览版。 只会以经压缩的高效格式通过网络发送更改后的块。 这最大程度地减少了跨区域复制所需的数据量,从而节省了数据传输成本。 它还可以缩短复制时间,便于实现较小的 RPO。 有关详细信息,请参阅使用跨区域复制的要求和注意事项

  • Azure 高级文件仅支持本地冗余 (LRS) 和区域冗余存储 (ZRS)。 对于灾难恢复策略,可以使用 AzCopyAzure PowerShell 将文件复制到不同区域中的其他存储帐户。 有关详细信息,请参阅灾难恢复和存储帐户故障转移

    重要

    Azure 文件存储的 SMB 协议已公开发布,但针对 Azure 文件存储的 NFS 协议支持目前为预览版。 有关详细信息,请参阅对 Azure 文件存储的 NFS 4.1 支持现在为预览版

CMS 数据库

灾难恢复区域中的 CMS 和审核数据库必须是在主要区域中运行的数据库的副本。 根据数据库类型,请务必按照业务要求的 RTO 和 RPO 将数据库复制到灾难恢复区域。

Azure Database for MySQL

Azure Database for MySQL 提供了多个可在发生灾难时恢复数据库的选项。 选择适用于你的业务的适当选项。

  • 可以使用跨区域只读副本来增强业务连续性和灾难恢复计划。 可将源服务器中的数据复制到最多 5 个副本。 只读副本使用 MySQL 的二进制日志复制技术进行异步更新。 副本是新的服务器,可以像管理 Azure Database for MySQL 中的普通服务器一样对其进行管理。 有关详细信息,请参阅 Azure Database for MySQL 中的只读副本

  • 使用异地还原功能,通过异地冗余备份来还原服务器。 即使你的服务器所在的区域离线,也可访问这些备份。 可以使用这些备份还原到任何其他区域并使服务器恢复联机。

    注意

    只有当为服务器预配了异地冗余备份存储时,异地还原才是可行的。 不支持在创建服务器后更改“备份冗余选项”。 有关详细信息,请参阅备份冗余

下表显示了此示例中使用的每个层的灾难恢复建议。

SAP BOBI 平台层 建议
Azure 应用程序网关 次要区域上应用程序网关的并行安装。
Web 应用程序服务器 使用 Azure Site Recovery 进行复制。
BI 应用程序服务器 使用 Site Recovery 进行复制。
Azure NetApp 文件 基于文件的复制工具将数据复制到次要区域或使用跨区域复制。
Azure Database for MySQL 跨区域只读副本或从异地冗余备份还原备份。

后续步骤