星期三, 1月 30, 2019

SLES 12 for SAP 上課小記

SLES 12 for SAP 上課小記

Day 1:

下載上課檔案

安裝 7-zip
# zypper  install  p7zip

解壓縮檔案
# 7z  x  SLE321.7z.001

進入相關目錄
# cd  SLE321/

調整 install script 的權限
# chmod  a+x  install_lab_env.sh

執行環境檢查
# ./ install_lab_env.sh

如果不符合環境的要求, 會出現相關修改建議
例如我這邊就是要修改 /etc/libvirt/libvirtd.conf 相關設定

# vi   /etc/libvirt/libvirtd.conf
 Locate and uncomment/edit the following line to match:
unix_sock_group = libvirt
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
unix_sock_dir = "/var/run/libvirt"
auth_unix_ro = "none"
auth_unix_rw = "none"
listen_tcp = 1
 Locate and uncomment/edit the following line to match:
auth_tcp = "none"


重新開機
# reboot

進入相關目錄
# cd  SLE321/

執行環境檢查
# ./ install_lab_env.sh

新增檔案並加入下列設定
# vi  /etc/profile.d/libvirt.sh
 Add the following line to the end of the file:
export LIBVIRT_DEFAULT_URI="qemu:///system"

登出環境

# cd  SLE321/

執行環境檢查
# ./ install_lab_env.sh

將 root 加入 libvirt 群組
# usermod  -aG  libvirt  root

登出環境

# cd  SLE321/

執行環境檢查
# ./ install_lab_env.sh

完成環境安裝


Cluster Terminology
  • Epoch - The version number of the cluster configuration / status
  • Split Brain
    • A state where the nodes in a cluster disagree about the current state of the cluster.  Must be resolved before the cluster can continue to operate
  • Fencing
    • Method to protect the cluster by denying access to resources or rebooting a node
    • 隔離, 用來防止 Split Brain
  • Active / Passive
  • Active / Active

The SLE High Availability Extension
  • Beginning with SLES 11, the cluster packages are no longer included in the base product
  • Instead, the cluster stack is available as an add-on product, or extension
    • SLES 12 integrates the delivery of the HA Extension into the software manager
  • A separate subscription is required for each node that will run the HA Extension
  • Up to 32 nodes
  • Geo Cluster Extension to add multisite support

列出 pattern
# zypper  pt


Deployment Options
  • Cluster Types
    • Local Cluster
    • Metro Cluster
    • Geo Cluster

Main components of HAE
  • High availability base components
    • Corosync - 心跳, 透過 totem 實現同步
    • Pacemaker - Cluster 的大腦
    • Management tool
      • crm shell ( CRM - Cluster Resource Manager )
      • HAWK / HAWK2
    • Stonith  
      • 用來進行隔離(Fencing)
      • Shoot The Other Node In the Head
    • CIB
      • Cluster Information Base
      • 用來存放目前 Cluster 目前運作的狀態
      • 只有主節點會更新.
    • PE
      • Policy Engine, 用來計算事件如何應對
      • 運作在 DC 節點
    • LRM
      • Local Resource Manager
      • 執行 CRM 發出的指令
    • RA
      • Resource Agent
    • DLM
      • Distributed Lock Manager
      • Provide generic cluster wide locking facilities


  • Storage components
    • cLVMd
      • 在 cluster 用 LVM
    • DRBD
      • (Distributed Replicated Block Device) 是 Linux 平台上的分散式儲存系統
      • 不提供同時讀寫
    • OCFS2 filesystem
    • GFS filesystem
  • Load balancing
    • Linux IP Virtual Server ( IPVS )
    • HAProxy
    • Conntrackd

如何判斷主節點?
  • Cluster 內其實沒有主節點或是副節點,
  • 有DC 節點也許可以視為主節點, 上面的 PE


==== Break ====

Cluster Resource Manager ( CRM )

讓大家完成環境建置

==== Lunch Break ====

Lab1: Power On and Verify the Storage Server
Lab2: Install and Configure a Cluster

Section 3: Cluster Administration Tools

HAWK

Lab 3: Cluster Administrator Tools

透過 HAWK2 以 web去觀察 cluster
透過 crm 指令去觀察與控制 cluster
透過 pssh 指令去平行處理 ssh 指令

透過 csync2 指令去同步各個 node 的檔案

星期二, 1月 29, 2019

Acronis Backup 備份 VMware Linux with XFS 小記

Acronis Backup 備份 VMware Linux with XFS 小記


Acronis Backup:  12.5
OS: Ubuntu 16.04


工作上的 VM 有進行備份規劃, 但是因為這個VM 同時掛載大量資料, 所以規劃上就是
  • /dev/sda - 系統 ( 檔案系統 ext4 / XFS )
  • /dev/sdb - 主要資料存放區( 檔案系統 XFS )

在進行計畫備份的時候有透過檔案篩選器排除資料目錄,  後來發現沒有進行排除篩選, 詢問原廠的答案是 XFS 目前不支援排除檔案




經過原廠工程師的協助與討論
解法
  • 備份內容: 選擇 磁碟/磁碟區
  • 要備份的項目: [ Disk 1 ] ( 這個部份就是對應 ESXi 上面的磁碟代號 )




上面的 [ Disk 1 ] 要跟 VMware ESXi 上面的硬碟對應


這樣就可以只備份系統的硬碟
至於還原, 找時間再來進行測試


先記下來

~ enjoy it


星期三, 1月 23, 2019

Cron job in container 小記

Cron job in container 小記

OS: openSUSE Leap 15
Container image:  opensuse/leap:15

昨天在 Cloud Native meet up 遇到 Haway, 被問一個問題, 如何在 container 內執行 cron task

之前沒有這樣嘗試過, 今天就來嘗試一下

想法:
  • 測試使用 cron job 每分鐘寫入訊息到檔案

下載 openSUSE Leap 15 container image

# docker  pull  opensuse/leap:15

執行 container
# docker  run  --rm  -it  opensuse/leap:15  /bin/bash

以下在 container 內操作

安裝 vim 與  cron
15a63ae236e1:/ # zypper  -n  install  vim  cron

撰寫 crontab 檔案

15a63ae236e1:/ #  vi  crontab
內容如下
* * * * * /testcron.sh

作法上就是每分鐘去執行 /testcron.sh
  • 如果是 Dockfile 內的寫法, 覺得可以用 ADD 從本機加進去已經寫好的檔案, 或是使用 RUN 搭配 wget 從網路上抓下來, 這樣不用互動來建立檔案.
  • 預設進入點會在 / 目錄下, 所以檔案的完整路徑就會是  /crontab

給予適當權限
15a63ae236e1:/ #  chmod 644 crontab

接下來編輯要去定時執行的程式
15a63ae236e1:/ #  vi   /testcron.sh
內容如下
echo “Hello, Cron”  >> /tmp/testcron.txt
Date                        >> /tmp/testcron.txt

  • 如果是 Dockfile 內的寫法, 覺得可以用 ADD 從本機加進去已經寫好的檔案, 或是使用 RUN 搭配 wget 從網路上抓下來, 這樣不用互動來建立檔案.

給予適當權限
15a63ae236e1:/ #  chmod a+x  /testcron.sh

觀察相關資訊
15a63ae236e1:/ #  ls  /var/spool/cron/tabs/

使用 crontab 指令匯入剛剛的工作
15a63ae236e1:/ #  crontab  /crontable

觀察相關資訊
15a63ae236e1:/ #  ls  /var/spool/cron/tabs/
root

觀察相關資訊
15a63ae236e1:/ #  ps aux | grep cron

執行 cron 指令
15a63ae236e1:/ #  cron

  • 在 Dockfile 寫法上,  想法上就是放在 CMD 或是 ENTRYPOINT 執行, 啟動 container  就執行

觀察相關資訊
15a63ae236e1:/ #  ps aux | grep cron

等待幾分鐘

觀察相關資訊
15a63ae236e1:/ #  cat   /tmp/testcron.txt
Hello, Cron
Wed Jan 23 08:14:01 UTC 2019
Hello, Cron
Wed Jan 23 08:15:02 UTC 2019
Hello, Cron
Wed Jan 23 08:16:01 UTC 2019


也算是多實驗一個方式
~ enjoy it

Reference: