跳到主要內容

在 GCP 新增 VM 執行個體的儲存空間



GCP 文件連結

建立 GCP VM instance 時,預設磁碟空間為10GB,可在建立時自行調整,
也可另外新增永久磁碟供VM 掛載使用

在建立永久磁區前,請先參考 儲存空間儲存空間的類型及效能
地區與區域的區別為:地區區域的集合
並且參考其 磁碟定價
來做為你要新增儲存空間的依據

以下以新增區域永久磁碟做說明



1. 增加新磁碟
前往 VM 執行個體  頁面
VM 執行個體詳細資料 點擊 編輯
在磁碟標籤標籤下 點擊 增加新磁碟
指定名稱、類型、來源 等屬性後
點擊儲存

2. 格式化和掛接新磁碟

//在終端機中,使用 lsblk 指令列出連接到執行個體的磁碟,並搜尋您要格式化和掛接的磁碟 
sudo lsblk

//格式化磁碟 以下用 sdb 取代 [DEVICE_ID]
sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/[DEVICE_ID]

//建立做為新磁碟掛接點的目錄 以下用 extra 取代 [MNT_DIR] 
sudo mkdir -p /mnt/disks/[MNT_DIR]

//使用掛接工具,將磁碟掛接到已啟用 discard 選項的執行個體 
sudo mount -o discard,defaults /dev/[DEVICE_ID] /mnt/disks/[MNT_DIR]

//設定裝置上的讀取與寫入權限。在此範例中,授予所有使用者對裝置的寫入存取權 
sudo chmod a+w /mnt/disks/[MNT_DIR]

//可用單一指令完成此步驟。舉例來說,下列指令會在 /etc/fstab 中建立項目,以永久磁碟的 UUID 將 /dev/sdb 永久磁碟掛接到 /mnt/disks/[MNT_DIR] 
echo UUID=`sudo blkid -s UUID -o value /dev/[DEVICE_ID]` /mnt/disks/[MNT_DIR] ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab


補充


將 Docker 遷移至新磁碟
參考來源



//編輯 Config 以下用 /mnt/disks/extra/dockerimages 取代 /new/path/docker  
sudo vi /lib/systemd/system/docker.service

FROM:
ExecStart=/usr/bin/docker daemon -H fd://
TO:
ExecStart=/usr/bin/dockerd -g /new/path/docker -H fd://

//docker core stop 
systemctl stop docker

//check docker alive 
ps aux | grep -i docker | grep -v grep

//copy docker image from old folder to new  
rsync -aqxP /var/lib/docker/ /new/path/docker

//reload docker config 
systemctl daemon-reload

//docker core start 
systemctl start docker

留言

這個網誌中的熱門文章

FluentD 存取 File Log

其他文章參考 FluentD 存取 Nginx Access Log (1/2) FluentD 存取 Nginx Access Log (2/2) 以上是 Nginx + FluentD + (ES|Mongo) Demo 針對access.log 做解析 現在以Log4X 產生的日誌檔作為範例說明 會遇到的問題有 日誌內容會有多行的情況 # multiline 希望每條日誌內容加入 UUID 以便追蹤 # https://github.com/chaeyk/fluent-plugin-add-uuid 使用 Slack 作為通知的通道 # https://github.com/sowawa/fluent-plugin-slack Log4X Layout Format Example <?xml version="1.0" encoding="utf-8" ?> <configuration> <log4net> <appender name="All" type="log4net.Appender.RollingFileAppender"> <file value="/var/log/web.log" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <datePattern value="yyyy-MM-dd" /> <maximumFileSize value="5MB" /> <maxSizeRollBackups value="10" /> <staticLogFileName value="true" /> <PreserveLogFileNameExtension value=...

申請免費 SSL,自動續訂

參考 acme.sh 搭配 GoDaddy 自動續期 Let's Encrypt 免費萬用憑證 使用 acme.sh + Cloudflare 申請免費 Wildcard SSL (Let’s Encrypt) 節略如下 安裝 acme.sh # 安裝 acme.sh ,安裝後重新登入 curl https://get.acme.sh | sh # 自動更新 acme.sh --upgrade --auto-upgrade acme.sh 設定存取 Goddy vi ~/.acme.sh/account.conf # Goddy API GD_Key="" GD_Secret="" acme.sh 設定存取 Cloudflare # Cloudflare API Keys # Global API Key [View] export CF_Key="" export CF_Email="" 申請網域(Domain)的萬用憑證,成功後會顯示憑證存放的路徑 $> acme.sh --issue --dns dns_gd -d ${domain} -d *.${domain} 安裝憑證 # 建立 /etc/nginx/ssl/${domain} 路徑 $> acme.sh --install-cert -d ${domain} --key-file /etc/nginx/ssl/${domain}/key.pem --fullchain-file /etc/nginx/ssl/${domain}/cert.pem --reloadcmd "sudo nginx -s reload"

DotNet Core 專案部署腳本

DotNet core SDK 首先在 Server 上準備編譯環境 Dockerfile #2.2 3.0 3.1 FROM mcr.microsoft.com/dotnet/core/sdk:3.1 RUN mkdir /web WORKDIR /web build docker image shell script docker build -t dotnetcoresdk:3.1 . start docker container shell script docker run -it -d \ --name dotnet-core-sdk-3.1 \ -v /opt/web:/web \ dotnetcoresdk:3.1 Jenkins Execute shell script on remote hosting using ssh #切換至專案目錄 cd /opt/web/project/path #取得最新版本 git pull #切換至專案目錄 && 刷新 Dotnet Library docker exec -i dotnet-core-sdk-3.1 bash -c "cd project/path && dotnet restore" #切換至專案目錄 && 刪除上一次編譯的檔案 && 編譯 docker exec -i dotnet-core-sdk-3.1 bash -c "cd project/path && rm -rf bin/Release && dotnet publish -c Release" #docker-compose.yml 參 DotNet core Runtime Section #!--rmi all 將原本執行的容器關閉並移除Image docker-compose down --rmi all #將新版程式包入 Image 並開始容器 docker-compose up -d DotNet core Runtime 專案中包含 Dockerfile & docker-compose.yml d...