1. 云计算概述
云计算资源管理是对云平台计算、存储、网络等资源的统一管理和调度。更多学习教程www.fgedu.net.cn
云计算资源层次:
┌─────────────────────────────────────────────────────┐
│ SaaS应用层 │
└───────────────────────┬─────────────────────────────┘
│
┌───────────────────────┴─────────────────────────────┐
│ PaaS平台层 │
│ (容器/数据库/中间件) │
└───────────────────────┬─────────────────────────────┘
│
┌───────────────────────┴─────────────────────────────┐
│ IaaS基础设施层 │
│ 计算/存储/网络/安全 │
└───────────────────────┬─────────────────────────────┘
│
┌───────────────────────┴─────────────────────────────┐
│ 物理资源层 │
│ 服务器/存储设备/网络设备 │
└─────────────────────────────────────────────────────┘
# 查看OpenStack资源
# openstack catalog list
+———–+———–+——————————————+
| Name | Type | Endpoints |
+———–+———–+——————————————+
| keystone | identity | fgedu-cloud |
| nova | compute | fgedu-cloud |
| glance | image | fgedu-cloud |
| cinder | volume | fgedu-cloud |
| neutron | network | fgedu-cloud |
| swift | object-store | fgedu-cloud |
+———–+———–+——————————————+
# 查看计算资源
# openstack hypervisor list
+—-+———————+—————–+———-+——-+
| ID | Hypervisor Hostname | Hypervisor Type | Status | State |
+—-+———————+—————–+———-+——-+
| 1 | compute-node-01 | QEMU | enabled | up |
| 2 | compute-node-02 | QEMU | enabled | up |
| 3 | compute-node-03 | QEMU | enabled | up |
+—-+———————+—————–+———-+——-+
# 查看资源统计
# openstack hypervisor stats show
+———————-+——-+
| Field | Value |
+———————-+——-+
| count | 3 |
| current_workload | 5 |
| disk_available_least | 2000 |
| free_disk_gb | 1500 |
| free_ram_mb | 96000 |
| local_gb | 3000 |
| local_gb_used | 1500 |
| memory_mb | 192000|
| memory_mb_used | 96000 |
| running_vms | 45 |
| vcpus | 96 |
| vcpus_used | 48 |
+———————-+——-+
2. 计算资源管理
计算资源管理包括虚拟机、容器等计算资源的管理。学习交流加群风哥微信: itpux-com
# openstack server list –all-projects
+————————————–+——————-+——–+————————+——–+———+
| ID | Name | Status | Networks | Image | Flavor |
+————————————–+——————-+——–+————————+——–+———+
| abc12345-1234-1234-1234-123456789012 | fgedu-web-01 | ACTIVE | private=192.168.1.10 | centos | m1.large|
| abc12345-1234-1234-1234-123456789013 | fgedu-app-01 | ACTIVE | private=192.168.1.11 | centos | m1.xlarge|
| abc12345-1234-1234-1234-123456789014 | fgedu-db-01 | ACTIVE | private=192.168.1.12 | centos | m1.2xlarge|
+————————————–+——————-+——–+————————+——–+———+
# 查看虚拟机详情
# openstack server show fgedu-web-01
+—————————–+———————————————————-+
| Field | Value |
+—————————–+———————————————————-+
| OS-DCF:diskConfig | AUTO |
| OS-EXT-AZ:availability_zone | nova |
| OS-EXT-STS:power_state | Running |
| OS-EXT-STS:vm_state | active |
| flavor | m1.large (4 vCPU, 8GB RAM) |
| id | abc12345-1234-1234-1234-123456789012 |
| image | centos-7.9 (def12345-1234-1234-1234-123456789012) |
| name | fgedu-web-01 |
| status | ACTIVE |
| addresses | private=192.168.1.10 |
+—————————–+———————————————————-+
# 创建虚拟机
# openstack server create \
–name fgedu-web-02 \
–flavor m1.large \
–image centos-7.9 \
–nic net-id=private \
–security-group default \
–key-name fgedu-key \
fgedu-web-02
+—————————–+———————————————————-+
| Field | Value |
+—————————–+———————————————————-+
| id | abc12345-1234-1234-1234-123456789015 |
| name | fgedu-web-02 |
| status | BUILD |
+—————————–+———————————————————-+
# 虚拟机生命周期管理
# 启动虚拟机
# openstack server start fgedu-web-02
# 停止虚拟机
# openstack server stop fgedu-web-02
# 重启虚拟机
# openstack server reboot fgedu-web-02
# 暂停虚拟机
# openstack server pause fgedu-web-02
# 恢复虚拟机
# openstack server unpause fgedu-web-02
# 调整虚拟机规格
# openstack server resize –flavor m1.xlarge fgedu-web-02
# 确认调整
# openstack server resize confirm fgedu-web-02
# 迁移虚拟机
# openstack server migrate fgedu-web-02 –live compute-node-02
# 查看迁移状态
# openstack server show fgedu-web-02 | grep “OS-EXT-SRV-ATTR:host”
# 计算资源管理脚本
# cat > /opt/scripts/vm_manage.sh << 'EOF'
#!/bin/bash
ACTION=$1
VM_NAME=$2
case $ACTION in
list)
openstack server list --all-projects
;;
show)
openstack server show $VM_NAME
;;
start)
openstack server start $VM_NAME
echo "虚拟机 $VM_NAME 已启动"
;;
stop)
openstack server stop $VM_NAME
echo "虚拟机 $VM_NAME 已停止"
;;
reboot)
openstack server reboot $VM_NAME
echo "虚拟机 $VM_NAME 已重启"
;;
status)
openstack server show $VM_NAME | grep status
;;
*)
echo "Usage: $0 {list|show|start|stop|reboot|status} [vm_name]"
;;
esac
EOF
# chmod +x /opt/scripts/vm_manage.sh
3. 存储资源管理
存储资源管理包括块存储、对象存储等管理。学习交流加群风哥QQ113257174
# openstack volume type list
+————————————–+————-+
| ID | Name |
+————————————–+————-+
| abc12345-1234-1234-1234-123456789012 | ssd |
| abc12345-1234-1234-1234-123456789013 | sata |
| abc12345-1234-1234-1234-123456789014 | nvme |
+————————————–+————-+
# 查看卷列表
# openstack volume list
+————————————–+——————+———–+——+————-+
| ID | Name | Status | Size | Attached to |
+————————————–+——————+———–+——+————-+
| abc12345-1234-1234-1234-123456789012 | fgedu-data-vol | in-use | 100 | fgedu-db-01 |
| abc12345-1234-1234-1234-123456789013 | fgedu-log-vol | in-use | 50 | fgedu-web-01|
| abc12345-1234-1234-1234-123456789014 | fgedu-backup-vol | available | 200 | |
+————————————–+——————+———–+——+————-+
# 创建卷
# openstack volume create \
–size 100 \
–type ssd \
–description “FGedu application data volume” \
fgedu-app-data
+———————+————————————–+
| Field | Value |
+———————+————————————–+
| id | abc12345-1234-1234-1234-123456789015 |
| name | fgedu-app-data |
| size | 100 |
| status | creating |
| type | ssd |
+———————+————————————–+
# 挂载卷到虚拟机
# openstack server add volume fgedu-app-01 fgedu-app-data
# 卸载卷
# openstack server remove volume fgedu-app-01 fgedu-app-data
# 扩展卷大小
# openstack volume set –size 200 fgedu-app-data
# 创建卷快照
# openstack volume snapshot create \
–volume fgedu-app-data \
–description “FGedu app data snapshot” \
fgedu-app-data-snap
+———————+————————————–+
| Field | Value |
+———————+————————————–+
| id | abc12345-1234-1234-1234-123456789016 |
| name | fgedu-app-data-snap |
| size | 100 |
| status | creating |
| volume_id | abc12345-1234-1234-1234-123456789015 |
+———————+————————————–+
# 对象存储管理
# 查看容器列表
# openstack container list
+——————+
| Name |
+——————+
| fgedu-backup |
| fgedu-images |
| fgedu-logs |
+——————+
# 上传对象
# openstack object create fgedu-backup /data/backup/app_backup.tar.gz
+——————+————+———————————-+
| Object | Container | ETag |
+——————+————+———————————-+
| app_backup.tar.gz| fgedu-backup| abc123def456… |
+——————+————+———————————-+
# 下载对象
# openstack object save fgedu-backup app_backup.tar.gz –file /tmp/app_backup.tar.gz
# 查看存储配额
# openstack quota show fgedu-project
+———————–+——-+
| Field | Value |
+———————–+——-+
| gigabytes | 1000 |
| gigabytes_ssd | 500 |
| gigabytes_sata | 500 |
| snapshots | 10 |
| volumes | 20 |
+———————–+——-+
4. 网络资源管理
网络资源管理包括虚拟网络、路由、安全组等管理。更多学习教程公众号风哥教程itpux_com
# openstack network list
+————————————–+——————-+————————————–+
| ID | Name | Subnets |
+————————————–+——————-+————————————–+
| abc12345-1234-1234-1234-123456789012 | public | def12345-1234-1234-1234-123456789012 |
| abc12345-1234-1234-1234-123456789013 | private | def12345-1234-1234-1234-123456789013 |
| abc12345-1234-1234-1234-123456789014 | fgedu-network | def12345-1234-1234-1234-123456789014 |
+————————————–+——————-+————————————–+
# 创建网络
# openstack network create fgedu-app-network
+—————————+————————————–+
| Field | Value |
+—————————+————————————–+
| id | abc12345-1234-1234-1234-123456789015 |
| name | fgedu-app-network |
| provider:network_type | vxlan |
| router:external | Internal |
| status | ACTIVE |
+—————————+————————————–+
# 创建子网
# openstack subnet create \
–network fgedu-app-network \
–subnet-range 192.168.100.0/24 \
–gateway 192.168.100.1 \
–dns-nameserver 8.8.8.8 \
fgedu-app-subnet
+——————-+————————————–+
| Field | Value |
+——————-+————————————–+
| id | def12345-1234-1234-1234-123456789015 |
| name | fgedu-app-subnet |
| network_id | abc12345-1234-1234-1234-123456789015 |
| cidr | 192.168.100.0/24 |
| gateway_ip | 192.168.100.1 |
| dns_nameservers | 8.8.8.8 |
+——————-+————————————–+
# 创建路由器
# openstack router create fgedu-router
+————————-+————————————–+
| Field | Value |
+————————-+————————————–+
| id | abc12345-1234-1234-1234-123456789016 |
| name | fgedu-router |
| status | ACTIVE |
+————————-+————————————–+
# 连接子网到路由器
# openstack router set fgedu-router –external-gateway public
# openstack router add subnet fgedu-router fgedu-app-subnet
# 安全组管理
# 查看安全组
# openstack security group list
+————————————–+———+————————+
| ID | Name | Description |
+————————————–+———+————————+
| abc12345-1234-1234-1234-123456789017 | default | Default security group |
| abc12345-1234-1234-1234-123456789018 | fgedu-sg| FGedu security group |
+————————————–+———+————————+
# 创建安全组规则
# openstack security group rule create \
–protocol tcp \
–dst-port 22:22 \
–remote-ip 0.0.0.0/0 \
fgedu-sg
+——————-+————————————–+
| Field | Value |
+——————-+————————————–+
| id | rule-12345 |
| direction | ingress |
| ethertype | IPv4 |
| port_range_max | 22 |
| port_range_min | 22 |
| protocol | tcp |
| remote_ip_prefix | 0.0.0.0/0 |
+——————-+————————————–+
# 浮动IP管理
# 创建浮动IP
# openstack floating ip create public
+———————+————————————–+
| Field | Value |
+———————+————————————–+
| floating_ip_address | 203.0.113.100 |
| id | abc12345-1234-1234-1234-123456789019 |
| status | DOWN |
+———————+————————————–+
# 绑定浮动IP
# openstack server add floating ip fgedu-web-01 203.0.113.100
5. 资源监控
资源监控实时跟踪云资源使用状态。author:www.itpux.com
# openstack hypervisor show compute-node-01
+———————-+————————————–+
| Field | Value |
+———————-+————————————–+
| cpu_allocation_ratio | 16.0 |
| cpu_info | {“vendor”: “Intel”, “model”: “Skylake”}|
| current_workload | 5 |
| disk_available_least | 500 |
| free_disk_gb | 500 |
| free_ram_mb | 32000 |
| host_ip | 192.168.1.101 |
| local_gb | 1000 |
| local_gb_used | 500 |
| memory_mb | 64000 |
| memory_mb_used | 32000 |
| running_vms | 15 |
| vcpus | 32 |
| vcpus_used | 16 |
+———————-+————————————–+
# 资源监控脚本
# cat > /opt/scripts/cloud_monitor.sh << 'EOF'
#!/bin/bash
echo "云计算资源监控报告"
echo "=========================================="
echo "时间: $(date)"
echo ""
echo "【计算资源】"
echo "----------------------------------------"
openstack hypervisor stats show
echo ""
echo "【虚拟机状态】"
echo "----------------------------------------"
openstack server list --all-projects -c Name -c Status -c Networks
echo ""
echo "【存储资源】"
echo "----------------------------------------"
openstack volume summary
echo ""
echo "卷列表:"
openstack volume list -c Name -c Status -c Size
echo ""
echo "【网络资源】"
echo "----------------------------------------"
echo "网络列表:"
openstack network list -c Name -c Subnets
echo ""
echo "浮动IP使用:"
openstack floating ip list -c "Floating IP Address" -c Status -c "Fixed IP Address"
echo ""
echo "【资源告警】"
echo "----------------------------------------"
# 检查资源使用率
VCPU_USED=$(openstack hypervisor stats show | grep vcpus_used | awk '{print $4}')
VCPU_TOTAL=$(openstack hypervisor stats show | grep "^| vcpus" | awk '{print $4}')
VCPU_RATIO=$(echo "scale=2; $VCPU_USED / $VCPU_TOTAL * 100" | bc)
if [ $(echo "$VCPU_RATIO > 80″ | bc) -eq 1 ]; then
echo “警告: vCPU使用率 ${VCPU_RATIO}% 超过80%”
fi
MEM_USED=$(openstack hypervisor stats show | grep memory_mb_used | awk ‘{print $4}’)
MEM_TOTAL=$(openstack hypervisor stats show | grep “^| memory_mb” | awk ‘{print $4}’)
MEM_RATIO=$(echo “scale=2; $MEM_USED / $MEM_TOTAL * 100” | bc)
if [ $(echo “$MEM_RATIO > 80” | bc) -eq 1 ]; then
echo “警告: 内存使用率 ${MEM_RATIO}% 超过80%”
fi
echo “”
echo “==========================================”
EOF
# chmod +x /opt/scripts/cloud_monitor.sh
# 使用Ceilometer监控
# 查看计量数据
# openstack metric resource list
+————————————–+——————-+———————————-+
| Resource ID | Type | User ID |
+————————————–+——————-+———————————-+
| abc12345-1234-1234-1234-123456789012 | instance | user-123 |
| abc12345-1234-1234-1234-123456789013 | volume | user-123 |
+————————————–+——————-+———————————-+
# 查看CPU使用率
# openstack metric measures show –resource-id abc12345-1234-1234-1234-123456789012 cpu_util
+—————————+————-+———–+
| Timestamp | Granularity | Value |
+—————————+————-+———–+
| 2026-04-03T10:00:00 | 300.0 | 15.5 |
| 2026-04-03T10:05:00 | 300.0 | 18.2 |
| 2026-04-03T10:10:00 | 300.0 | 12.8 |
+—————————+————-+———–+
6. 资源调度
资源调度优化资源分配和负载均衡。
# openstack configuration show –service nova | grep scheduler
| scheduler_available_filters | nova.scheduler.filters.all_filters |
| scheduler_default_filters | AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter|
| scheduler_driver | nova.scheduler.filter_scheduler.FilterScheduler |
# 虚拟机热迁移
# openstack server migrate fgedu-web-01 –live compute-node-02 –block-migration
# 查看迁移状态
# openstack server show fgedu-web-01 | grep “OS-EXT-SRV-ATTR:host”
| OS-EXT-SRV-ATTR:host | compute-node-02 |
# 批量迁移脚本
# cat > /opt/scripts/vm_evacuate.sh << 'EOF'
#!/bin/bash
SOURCE_HOST=$1
if [ -z "$SOURCE_HOST" ]; then
echo "Usage: $0
exit 1
fi
echo “从 $SOURCE_HOST 撤离虚拟机…”
# 获取该主机上的所有虚拟机
VMS=$(openstack server list –host $SOURCE_HOST -c ID -f value)
for vm in $VMS; do
VM_NAME=$(openstack server show $vm -c name -f value)
echo “迁移虚拟机: $VM_NAME”
openstack server migrate $vm –live-migration
done
echo “撤离完成”
EOF
# chmod +x /opt/scripts/vm_evacuate.sh
# 主机维护模式
# 禁用主机
# openstack compute service set compute-node-01 nova-compute –disable
# 启用主机
# openstack compute service set compute-node-01 nova-compute –enable
# 查看服务状态
# openstack compute service list
+—-+—————-+—————–+———-+———+——-+—————————-+
| ID | Binary | Host | Zone | Status | State | Updated At |
+—-+—————-+—————–+———-+———+——-+—————————-+
| 1 | nova-conductor | controller | internal | enabled | up | 2026-04-03T10:00:00.000000 |
| 2 | nova-scheduler | controller | internal | enabled | up | 2026-04-03T10:00:00.000000 |
| 3 | nova-compute | compute-node-01| nova | enabled | up | 2026-04-03T10:00:00.000000 |
| 4 | nova-compute | compute-node-02| nova | enabled | up | 2026-04-03T10:00:00.000000 |
+—-+—————-+—————–+———-+———+——-+—————————-+
# 负载均衡调度
# 创建服务器组
# openstack server group create fgedu-web-group –policy anti-affinity
+————-+————————————–+
| Field | Value |
+————-+————————————–+
| id | abc12345-1234-1234-1234-123456789020 |
| name | fgedu-web-group |
| policy | anti-affinity |
+————-+————————————–+
# 创建虚拟机时指定服务器组
# openstack server create \
–name fgedu-web-03 \
–flavor m1.large \
–image centos-7.9 \
–hint group=abc12345-1234-1234-1234-123456789020 \
fgedu-web-03
7. 资源配额
资源配额限制项目和用户的资源使用。
# openstack quota show fgedu-project
+———————–+——-+
| Field | Value |
+———————–+——-+
| cores | 50 |
| fixed_ips | -1 |
| floating_ips | 10 |
| gigabytes | 1000 |
| gigabytes_ssd | 500 |
| instances | 20 |
| key_pairs | 100 |
| ram | 51200 |
| security_group_rules | 100 |
| security_groups | 10 |
| snapshots | 10 |
| volumes | 20 |
+———————–+——-+
# 设置项目配额
# openstack quota set fgedu-project \
–cores 100 \
–instances 50 \
–ram 102400 \
–volumes 50 \
–gigabytes 2000
# 查看配额使用情况
# openstack quota show fgedu-project –usage
+———————–+——-+——-+
| Field | Limit | Usage |
+———————–+——-+——-+
| cores | 100 | 48 |
| instances | 50 | 15 |
| ram |102400 | 51200 |
| volumes | 50 | 20 |
| gigabytes | 2000 | 800 |
+———————–+——-+——-+
# 配额管理脚本
# cat > /opt/scripts/quota_manage.sh << 'EOF'
#!/bin/bash
PROJECT=$1
ACTION=$2
case $ACTION in
show)
openstack quota show $PROJECT
;;
usage)
openstack quota show $PROJECT --usage
;;
report)
echo "项目 $PROJECT 配额使用报告"
echo "=========================================="
openstack quota show $PROJECT --usage | while read line; do
LIMIT=$(echo $line | awk '{print $2}')
USAGE=$(echo $line | awk '{print $3}')
if [ -n "$LIMIT" ] && [ -n "$USAGE" ] && [ "$LIMIT" != "-1" ]; then
RATIO=$(echo "scale=2; $USAGE / $LIMIT * 100" | bc 2>/dev/null || echo “0”)
echo “$line (${RATIO}%)”
fi
done
;;
*)
echo “Usage: $0
;;
esac
EOF
# chmod +x /opt/scripts/quota_manage.sh
8. 资源优化
资源优化提高资源利用率和性能。
# cat > /opt/scripts/resource_optimize.sh << 'EOF' #!/bin/bash echo "云计算资源优化分析" echo "==========================================" # 1. 计算资源优化 echo "" echo "【计算资源优化建议】" echo "----------------------------------------" # 分析CPU使用率 for host in $(openstack hypervisor list -c "Hypervisor Hostname" -f value); do VCPU_USED=$(openstack hypervisor show $host | grep vcpus_used | awk -F'|' '{print $3}' | tr -d ' ') VCPU_TOTAL=$(openstack hypervisor show $host | grep "^| vcpus" | awk -F'|' '{print $3}' | tr -d ' ') if [ -n "$VCPU_USED" ] && [ -n "$VCPU_TOTAL" ]; then RATIO=$(echo "scale=2; $VCPU_USED / $VCPU_TOTAL * 100" | bc) echo "$host: vCPU使用率 ${RATIO}%" if [ $(echo "$RATIO < 30" | bc) -eq 1 ]; then echo " 建议: 考虑迁移部分虚拟机以整合资源" elif [ $(echo "$RATIO > 80″ | bc) -eq 1 ]; then
echo ” 建议: 考虑扩容或迁移部分虚拟机”
fi
fi
done
# 2. 存储资源优化
echo “”
echo “【存储资源优化建议】”
echo “—————————————-”
# 分析存储使用
VOLUMES=$(openstack volume list –all-projects -f value -c ID)
for vol in $VOLUMES; do
STATUS=$(openstack volume show $vol -c status -f value)
SIZE=$(openstack volume show $vol -c size -f value)
if [ “$STATUS” == “available” ]; then
NAME=$(openstack volume show $vol -c name -f value)
echo “未挂载卷: $NAME (${SIZE}GB) – 建议删除或使用”
fi
done
# 3. 网络资源优化
echo “”
echo “【网络资源优化建议】”
echo “—————————————-”
# 分析浮动IP使用
FLOATING_IPS=$(openstack floating ip list -f value -c ID -c Status)
echo “$FLOATING_IPS” | while read id status; do
if [ “$status” == “DOWN” ]; then
IP=$(openstack floating ip show $id -c “Floating IP Address” -f value)
echo “未使用浮动IP: $IP – 建议释放”
fi
done
# 4. 虚拟机优化
echo “”
echo “【虚拟机优化建议】”
echo “—————————————-”
# 分析虚拟机状态
openstack server list –all-projects -c Name -c Status -c Flavor -f value | while read name status flavor; do
if [ “$status” == “SHUTOFF” ]; then
echo “已停止虚拟机: $name – 建议删除或启动”
fi
done
echo “”
echo “==========================================”
EOF
# chmod +x /opt/scripts/resource_optimize.sh
9. 成本管理
成本管理控制云资源使用成本。
# cat > /opt/scripts/cost_analysis.sh << 'EOF' #!/bin/bash echo "云计算成本分析报告" echo "==========================================" echo "时间: $(date)" echo "" # 定义单价(示例) FLAVOR_COSTS=" m1.small:0.05 m1.medium:0.10 m1.large:0.20 m1.xlarge:0.40 m1.2xlarge:0.80 " STORAGE_COST_PER_GB=0.0001 FLOATING_IP_COST=0.005 # 计算虚拟机成本 echo "【虚拟机成本】" echo "----------------------------------------" TOTAL_VM_COST=0 openstack server list --all-projects -c Name -c Flavor -f value | while read name flavor; do # 获取flavor成本 COST=$(echo "$FLAVOR_COSTS" | grep "$flavor" | cut -d: -f2) if [ -z "$COST" ]; then COST=0.10 fi DAILY_COST=$(echo "$COST * 24" | bc) MONTHLY_COST=$(echo "$COST * 24 * 30" | bc) echo "$name ($flavor): ¥${DAILY_COST}/天, ¥${MONTHLY_COST}/月" done # 计算存储成本 echo "" echo "【存储成本】" echo "----------------------------------------" TOTAL_STORAGE=0 openstack volume list --all-projects -c Name -c Size -f value | while read name size; do DAILY_COST=$(echo "$size * $STORAGE_COST_PER_GB * 24" | bc) MONTHLY_COST=$(echo "$size * $STORAGE_COST_PER_GB * 24 * 30" | bc) echo "$name (${size}GB): ¥${DAILY_COST}/天, ¥${MONTHLY_COST}/月" done # 计算浮动IP成本 echo "" echo "【浮动IP成本】" echo "----------------------------------------" FLOATING_IP_COUNT=$(openstack floating ip list -f value -c ID | wc -l) FLOATING_IP_DAILY=$(echo "$FLOATING_IP_COUNT * $FLOATING_IP_COST * 24" | bc) FLOATING_IP_MONTHLY=$(echo "$FLOATING_IP_COUNT * $FLOATING_IP_COST * 24 * 30" | bc) echo "浮动IP数量: $FLOATING_IP_COUNT" echo "浮动IP成本: ¥${FLOATING_IP_DAILY}/天, ¥${FLOATING_IP_MONTHLY}/月" echo "" echo "==========================================" EOF # chmod +x /opt/scripts/cost_analysis.sh # 资源使用报告 # cat > /opt/scripts/resource_report.sh << 'EOF' #!/bin/bash REPORT_FILE="/var/log/cloud_resource_report_$(date +%Y%m%d).txt" echo "云计算资源使用报告" > $REPORT_FILE
echo “==========================================” >> $REPORT_FILE
echo “生成时间: $(date)” >> $REPORT_FILE
echo “” >> $REPORT_FILE
# 项目资源使用
echo “【项目资源使用】” >> $REPORT_FILE
openstack quota show fgedu-project –usage >> $REPORT_FILE
# 虚拟机列表
echo “” >> $REPORT_FILE
echo “【虚拟机列表】” >> $REPORT_FILE
openstack server list –all-projects >> $REPORT_FILE
# 存储使用
echo “” >> $REPORT_FILE
echo “【存储使用】” >> $REPORT_FILE
openstack volume list –all-projects >> $REPORT_FILE
# 网络资源
echo “” >> $REPORT_FILE
echo “【网络资源】” >> $REPORT_FILE
openstack network list >> $REPORT_FILE
echo “” >> $REPORT_FILE
echo “==========================================” >> $REPORT_FILE
echo “报告已生成: $REPORT_FILE”
EOF
# chmod +x /opt/scripts/resource_report.sh
10. 最佳实践
云计算资源管理最佳实践确保资源高效利用。
# cat > /opt/docs/cloud_best_practices.md << 'EOF' # 云计算资源管理最佳实践 ## 1. 资源规划 - 合理评估资源需求 - 设置适当的资源配额 - 预留扩展空间 - 考虑高可用部署 ## 2. 资源监控 - 实施全面监控 - 设置告警阈值 - 定期生成报告 - 分析使用趋势 ## 3. 资源调度 - 使用反亲和性策略 - 实施负载均衡 - 定期优化分布 - 自动化迁移 ## 4. 成本控制 - 监控资源使用 - 释放闲置资源 - 选择合适规格 - 使用预留实例 ## 5. 安全管理 - 配置安全组规则 - 使用密钥认证 - 定期更新镜像 - 实施访问控制 ## 6. 备份恢复 - 定期创建快照 - 实施数据备份 - 测试恢复流程 - 异地灾备 ## 7. 自动化运维 - 使用编排服务 - 自动化部署 - 自动扩缩容 - 自动化监控 ## 8. 文档管理 - 维护架构文档 - 记录变更历史 - 编写操作手册 - 定期更新文档 EOF # 云资源健康检查脚本 # cat > /opt/scripts/cloud_health_check.sh << 'EOF' #!/bin/bash echo "云计算资源健康检查" echo "==========================================" # 1. 检查计算服务 echo "1. 计算服务状态" openstack compute service list | grep -E "nova-compute|nova-scheduler" # 2. 检查网络服务 echo "" echo "2. 网络服务状态" openstack network agent list # 3. 检查存储服务 echo "" echo "3. 存储服务状态" openstack volume service list # 4. 检查虚拟机状态 echo "" echo "4. 虚拟机状态统计" openstack server list --all-projects -c Status -f value | sort | uniq -c # 5. 检查资源使用 echo "" echo "5. 资源使用情况" openstack hypervisor stats show # 6. 检查告警 echo "" echo "6. 资源告警检查" VCPU_RATIO=$(openstack hypervisor stats show | awk '/vcpus_used/ {used=$4} /^| vcpus/ {total=$4} END {printf "%.2f", used/total*100}') echo "vCPU使用率: ${VCPU_RATIO}%" echo "" echo "==========================================" EOF # chmod +x /opt/scripts/cloud_health_check.sh
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
