Cả hai Sphere PowerCLI and vSpherevCLI (bao gồm “esxcli”) được xây dựng trên cùng một API tương tự như vSphere Client. Mỗi cơng cụ có thể được sử dụng để thực hiện nhiệm vụ nhất định, và đáp ứng tốt nhất từng nhiệm vụ của người dùng.
2.1.1.1. ESXi Shell
ESXi Shell là một shell đơn giản dành cho xử lý sự cố nâng cao theo hướng dẫn của đội hỗ trợ kỹ thuật. Khi cơng cụ dịng lệnh từ xa khơng có khả năng giải quyết một vấn đề cụ thể, các ESXi Shell cung cấp một sự thay thế. Tương tự như cách thức COS [15] được sử dụng để thực hiện các lệnh chẩn đoán và sửa chữa một số vấn đề ở mức độ thấp, ESXi Shell cho phép người dùng xem các bản ghi và tập tin cấu hình, cũng như để chạy cấu hình nhất định và lệnh tiện ích để chẩn đốn và sửa chữa vấn đề. ESXi Shell khơng dựa trên Linux. Thay vào đó, nó là một vỏ giới hạn khả năng, biên soạn đặc biệt cho ESXi.
ESXi Shell bao gồm một tập hợp các lệnh hỗ trợ đầy đủ lệnh ESXCLI và một tập hợp các lệnh để xử lý sự cố và khắc phục hậu quả. Để sử dụng, ESXi phải cho phép truy cập vào các ESXi Shell từ giao diện điều khiển trực tiếp của từng hệ thống hoặc truy cập vào ESXi Shell với SSH.
ESXi Shell được khuyến cáo sử dụng chủ yếu để hỗ trợ, xử lý sự cố. Nó cũng có thể được sử dụng như một phần của một kịch bản cài đặt, như được mô tả trong phần trước. Tất cả các ứng dụng khác của ESXi Shell, bao gồm cả chạy kịch bản tùy chỉnh, khơng được khuyến khích trong hầu hết các trường hợp. Thay vào đó, người dùng nên sử dụng vSpherevCLI hoặc vSphere PowerCLI
2.1.1.2. Lệnh “esxcli”
Các ESXi Shell trong ESXi 5 bao gồm một tập hợp lớn các không gian tên (namespaces) “esxcli” mới và các lệnh. Bộ đầy đủ lệnh ESXCLI cũng là một phần của gói vCLI. Cú pháp lệnh “esxcli”trong ESXi 5 là linh hoạt hơn các cú pháp trong ESXi 4 và hỗ trợ nhiều không gian tên.
“esxcli” là câu lệnh được dùng nhiều nhất trong vAPI, giúp quản lýhầu hết các khía cạnh của VSphere.
Các lệnh "esxcli" có sẵn trên mỗi máy chủ ESXi qua ESXi Shell, ngồi ra, nó có sẵn như là một phần của gói tùy chọn VCLImà có thể được cài đặt trên bất kỳ máy chủ Windows hoặc Linux (hoặc thông qua vMA)
esxcli [dispatch_option] <namespace> [namespace . . . ] <cmd> [cmd_options]
Mỗi lệnh có thể sử dụng một số tùy ý của không gian tên, và các lệnh khác nhau có số lượng các yếu tố khác nhau. Ví dụ:
Lệnh get trả về giá trị duy nhất:
~ # esxcli hardware memory get Physical Memory: 4023406592 Bytes Reliable Memory: 0 Bytes
NUMA Node Count: 1
Lệnh list được sử dụng với nhièu giá trị trả về:
esxcli hardware cpu list CPU:0 Id: 0 Package Id: 0 Family: 6 Model: 23 Type: 0 Stepping: 10 Brand: GenuineIntel Core Speed: 2926054440 Bus Speed: 266004936 APIC ID: 0x0 CPU:1 Id: 1 Package Id: 0 Family: 6 Model: 23 Type: 0 Stepping: 10 Brand: GenuineIntel
Core Speed: 2926054440 Bus Speed: 266004936 APIC ID: 0x1
2.1.1.3. Lệnh vim-cmd
Trong luận văn này, các thao tác của luận văn chủ yếu liên quan đến máy ảo nên luận văn sẽ chú trọng đi sâu vào câu lệnh vim-cmd. Vim-cmd là câu lệnh chạy trên top của vAPI, giúp quản lý các vấn đề liên quan đến máy ảo
VIM có nguồn gốc tên từ việc quản lý vSphere (Virtual Infrastructure Management). Lệnh vim-cmd là thực sự liên quan đến các API vSphere – lệnh được xây dựng phía trên các host mà thực hiện các API.
Trên ESXi, lệnh vim-cmd nằm tại /bin/vim-cmd, nơi thường có các liên kết đến một host có khả năng thực thi. Lệnh vim-cmd có 7 danh mục lệnh con. 7 danh mục lệnh con này có thể xóa các máy ảo và lấy về các kiểu dữ liệu yêu cầu như hbr, host, internal, proxy, solo, vim và vm.
~ # vim-cmd
Commands available under /:
hbrsvc/ internalsvc/solo/ vmsvc/ hostsvc/proxysvc/ vimsvc/help
Lệnh vim-cmd là tập hợp khá mạnh mẽ của các lệnh được xây dựng trên đầu trang của vSphere API. Sử dụng lệnh vim-cmd giúp tận dụng các chức năng của API vSphere ESXi từ Shell, kết hợp với khả năng kịch bản của Linux Shell, luận văn có thể làm rất nhiều cơng việc tự động hóa. [16]
Ngồi ra, có một số câu lệnh quan trọng và hay được sử dụng trong vCLI để phục vụ nhiều mục đích, khía cạnh của VSphere.
Câu lệnh Diễn giải
svmotion Di chuyển một file cấu hình máy ảo và ổ đĩa của nó trong khi
máy ảo đang chạy
vmkfstools Tạo và điều khiển ổ ảo, file hệ thống, logicat và thiết bị lưu trữ
vmware-cmd Thực hiện việc quản lý hệ thống máy ảo từ xa. Nó bao gồm tạo snapshot, bật tắt máy ảo, láy thông tin từ máy ảo
2.1.1.4. Sử dụng câu lệnh vCLI trong kịch bản
Hầu hết các quản trị viên chạy các kịch bản để thực hiện các nhiệm vụ tương tự nhiều lần hoặc để thực hiện một nhiệm vụ trên nhiều máy chủ. Có thể chạy các lệnh vCLI từ một máy chủ quản lý đối với nhiều máy chủ mục tiêu.
Ví dụ, khi một kho dữ liệu mới trở nên có sẵn trong mơi trường và cần phải chắc rằng kho dữ liệu có sẵn cho mỗi máy chủ ESXi. Các kịch bản mẫu sau đây minh họa cách làm cho một kho dữ liệu NAS có sẵn cho ba máy chủ (esxi_server_a, esx_server_b, và esxi_server_c).
Gỉa định rằng có một file cấu hình /home/admin/. visdkrc. <hostname> tồn tại trong mỗi máy.
Ví dụ, các tập tin cấu hình cho esxi_server_a có các nội dung sau:
VI_SERVER = esxi_server_a VI_USERNAME = root
VI_PASWORD = xysfdjkat
Kịch bản chính thêm các kho dữ liệu NAS bằng cách gọi các tập tin cấu hình khác nhau.
#!bin/sh
for i in {"esxi_server_a", "esx_server_b", "esxi_server_c"}
do
echo "Adding NAS datastore for $i. . . "
esxcli --config /host. conf storage nfs add -H <hostname> -s <sharepoint> -v <volumename>
esxcli --config <config. file> storage nfs list done
Phụ lục 2 sẽ đưa ra một bảng tổng kết các thao tác phổ biến liên quan đến máy ảo sử dụng dòng lệnh CLI.
2.1.2. VMware snapshot
Một snapshot lưu giữ trạng thái và dữ liệu của một máy ảo tại một thời điểm cụ thể.
Trạng thái bao gồm các trạng thái nguồn của máy ảo (ví dụ, bật, tắt, tạm ngừng). Các dữ liệu bao gồm tất cả các tập tin mà tạo nên các máy ảo. Điều này bao gồm các ổ đĩa, bộ nhớ, và các thiết bị khác, chẳng hạn như cạc mạng ảo. Một máy ảo cung cấp một số hoạt động để tạo và quản lý snapshot nhanh Các hoạt động này cho phép tạo ra các snapshot, trở về bất kỳ snapshot trong chuỗi, loại bỏ các snapshot và có thể tạo cây chụp mở rộng.
Khi tạo ra một bản chụp, có một số tùy chọn mà bạn có thể chỉ định:
Tên: này được sử dụng để xác định các snapshot.
Mô tả: Điều này được sử dụng để mô tả các snapshot.
Bộ nhớ<memory>: Nếu <memory>cờ là 1 hoặc đúng, một lưu giữ các
trạng thái nội bộ được bao gồm trong các snapshot. Snapshot có lưu bộ nhớ mất nhiều thời gian để tạo ra, nhưng cho phép quay ngược sang một trạng thái máy ảo đang chạy như khi snapshot được tạo ra. Tùy chọn này được thiết lập mặc định. Nếu khơng được kiểm sốt, và quiescing không được đánh dấu,snapshot sẽ tạo ra các tập tin có thể được sử dụng để khởi động lại máy ảo.
Quiesce: Nếu <quiesce> cờ là 1 hoặc đúng, và các máy ảo được bật lên
khi snapshot được thực hiện, VMware Tools được sử dụng để quiesce hệ thống tập tin trong máy ảo. Quiescing một hệ thống tập tin là một quá trình đưa các dữ liệu trên đĩa của một máy tính vật lý hay ảo vào trạng thái thích hợp để sao lưu. Q trình này có thể bao gồm các hoạt động như giải phóng bộ đệm bận trong bộ nhớ cache của hệ điều hành vào đĩa, hoặc vào các ứng dụng cụ thể mức cao hơn.
Lưu ý: quiescing chỉ tạm dừng hoặc thay đổi trạng thái của tiến trình đang chạy trên một máy tính, đặc biệt là có thể sửa đổi thơng tin được lưu trữ trên đĩa trong khi một bản sao lưu, để đảm bảo một bản sao lưu phù hợp và có thể sử dụng. Quiescing được sử dụng chủ yếu để sao lưu. Quiescing là không cần thiết cho snapshot bộ nhớ.
Khi một snapshot được tạo ra, nó bao gồm những tập tin này:
<vm>-<number>.vmdk and <vm>-<number>-delta.vmdk: Một
bộ sưu tập các tập tin . vmdk và *-delta. vmdk cho mỗi ổ đĩa ảo được kết nối với các máy ảo tại thời điểm chụp. Những tập tin này có thể được gọi là đĩa con, các bản ghilại. Những đĩa con sau này có thể được coi là đĩa cha cho đĩa con khác trong tương lai. Từ đĩa gốc cha mẹ, mỗi đĩa con tạo thành một bản ghi trở lại từ trạng thái hiện tại của ổ đĩa ảo, một bước tại một thời điểm, với bản gốc.
<vm>.vmsd: Các tập tin .vmsd là một cơ sở dữ liệu thông tin bản
chụp của máy ảo và các nguồn thơng tin chính cho người quản lý snapshot. Các tập tin chứa các dịng trong đó xác định mối quan hệ giữa các snapshot cũng như các đĩa con cho mỗi snapshot.
<vm>Snapshot<number>.vmsn: Các tập tin .vmsn bao gồm cấu
hình hiện tại và tùy chọn trạng thái hoạt động của máy ảo. Nắm bắt tình trạng bộ nhớ của máy ảo cho phép bạn quay trở lại một bật trạng thái của máy ảo. Với snapshotphi bộ nhớ, chỉ có thể trở lại máy ảo ở trạng thái tắt. Snapshot bộ nhớ mất nhiều thời gian để tạo ra snapshot hơn phi bộ nhớ