Thứ Ba, 23 tháng 7, 2013

Hướng dẫn sử dụng Openstack Dashboard - phần 2 - tạo instance

Trong phần trước, mình đã giới thiệu sơ lược về cách tạo mạng trên giao diện Dashboard. Tiếp theo mình sẽ hướng dẫn cách tạo instance.

Đầu tiên các bạn vào thẻ Instances, chọn Lauch Instance
Ở mục Instance Source, bạn có thể chọn cho instance boot từ file image hoặc file snapshot.Tiếp theo bạn chọn image tương ứng, đặt tên cho instance. Mục flavor là cấu hình phần cứng ta muốn cấp.
Trong thẻ Networking, ta chọn mạng internal đã tạo từ trước để cấp Flating IP cho instance.
Sau một khoảng thời gian, tùy theo dung lượng của file image, instance đã được tạo. Ta có thể thấy các thông số về cấu hình phần cứng, IP đã cấp, trạng thái...
Để instance có thể ra internet, ta cần cấp Floating IP (externet). Trong mục Action chọn More --> Associate Floating IP.
Tiếp theo là chọn IP. Nếu không có sẵn, ta sẽ ấn chọn nút + để thêm. Tương ứng bên dưới là mục Port sẽ được cấp, ta chọn đúng instance.
Sau khi nhấp vào dấu +, ta sẽ thấy mạng có thể cấp Floating IP (externet) ở mục Pool. Chọn mạng thích hợp rồi chọn Allocate IP.
Hệ thống sẽ tự động chọn IP đang ở trạng thái free để cấp cho instance. Đây chính là lý do ở mục tạo mạng external, ta disable DHCP.

Sau khi cấp Floating IP, các bạn tiến hành Hard Reboot instance để cập nhật.
Vậy là instance của chúng ta giờ có thể ra internet. Có thể thấy Flating IP và Floating IP ở mục IP Address.
Tiếp theo, để có thể ping, ssh... vào instance, ta phải cấu hình lại Security Group. Có thể xem đây là một ACL quản lý các port. Trong Dashboard, chọn mục Access & Security. Ở đây ta có thể thấy một Security Group mặc định được tạo, ta có thể tạo nhiều Security Groups khác tùy theo mục đích sử dụng. Ở đây, ta sẽ modify default group.
Tiến hành add các rules để ping, ssh và vào web server.
Trở lại instance vừa tạo, ta tiến hành xem log để chech thử xem hệ thống hoạt động thế nào.
Ta có thể thấy quá trình POST của instance, get Floating IP, add DNS, get instance's ID từ metadata...
Mục console được cung cấp bởi tiến trình nova-vnc-proxy. Để có thể thao tác, ta chọn Click here to show only console.
Ta tiến hành đăng nhập theo tài khoản mặc định của Cirros.
Kiểm tra IP, route, ping test xem instance đã ra internet được chưa, kiểm tra quyền người dùng, tiến hành đổi mật khẩu root (vì tài khoản mặc định cirros nằm trong nhóm sudoer).
Ở Security Group ta đã mở cổng 22, tiến hành ssh vào máy Cirros.
SSH thành công.
Tiếp theo, ta sẽ tiến hành Snapshot instance vừa tạo. Việc này hỗ trợ cho các lần lauch instance sau trở nên dễ dàng hơn.

Buổi offline chúc mừng sinh nhật lần 3 OpenStack - tại Hà Nội ngày 21/07/2013

Nhân dịp chúc mừng sinh nhật năm thứ 3 của OpenStack, các anh chị thuộc công ty DTT - Hà Nội đã đứng ra tổ chức một buổi offline cho các anh em chia sẻ với nhau về OpenStack.


Buổi offline đã diễn ra trong không khí vui vẻ với sự chia sẻ của mọi người về kinh nghiệm của mình trong quá trình làm việc với OpenStack.

Mình và bạn Thanh Vũ đã may mắn được tham gia buổi off này và chúng mình cũng có một bài thuyết trình nhỏ về những gì đã tìm hiểu được về OpenStack, các anh chị trong buổi off đã rất vui vẻ chia sẻ và đóng góp ý kiến cho mình và Vũ.


Qua buổi off, tình cảm của mọi người trở nên thân thiết hơn và quan trọng là mọi người đều muốn xây dựng một cộng đồng OpenStack Việt phát triển mạnh mẽ. Qua đó, người Việt Nam chúng ta cũng có thể nắm bắt được công nghệ tiên tiến trên thế giới.


Trên đây là vài dòng của mình về buổi offline. Xin cảm ơn anh Nguyễn Tiến đã đứng ra tổ chức buổi offline và cũng xin cảm ơn các anh chị đã nhiệt tình tham gia và chia sẻ.

Một vài hình ảnh của buổi off tại link facebook sau:

Thứ Tư, 17 tháng 7, 2013

Khắc phục lỗi "Status: Error" lúc launch instance

Điều đầu tiên các bạn phải chú ý là tài nguyên phần cứng cung cấp cho các instance được dùng từ các máy Compute thông qua các hypervisor ( qemu, kvm, xen...). Nên nếu gặp lỗi này lúc khởi tạo instance, bạn cần phải kiểm tra xem tài nguyên phần cứng ở máy Compute có còn đủ để cung cấp không.
Trường hợp dễ xảy ra nhất là thiếu RAM. Bạn có thể kiểm tra bằng lệnh free -m . Đây là lệnh được hỗ trợ bởi Linux cho phép xem tình trạng dung lượng RAM cũng như Virtual RAM ( swap space ).

Trường hợp thứ 2 là thiếu dung lượng Disk. Bạn cũng có thể kiểm tra bằng lệnh df -k

Do vậy, bạn cần lưu ý chọn flavor phù hợp với instance của mình sử dụng.
Một trường hợp nữa khiến việc khởi tạo instance bị lỗi là do Management Network của 3 máy bị lỗi kết nối (có thể 1 trong số các máy không kết nối được với các máy còn lại). Lúc này bạn cần kiểm tra các interface trên từng server bằng lệnh ifconfig -a hoặc ip a và sau đó ping để test thử kết nối giữa các server với nhau.
 Ngoài ra, lỗi cũng có thể xuất hiện do thành phần nova-compute bị lỗi trong quá trình nhận lệnh từ Controller. Lúc này bạn cần restart nova service trên cả máy Controller cũng như Compute.
Trường hợp cuối cùng là do một vấn đề...chưa thể tìm ra nguyên nhân ^^. Lúc này tôi thường reboot các máy server và mong chờ một chút may mắn xuất hiện.

Thứ Ba, 16 tháng 7, 2013

Biên bản họp nhóm ngày 16/07/2013

Thành phần tham gia:
1. Mentor: Anh Nguyễn Tiến
2. Thành viên nhóm:
  • Trung Dũng
  • Thanh Vũ
Công cụ sử dụng: Skype
Nội dung đã bàn luận và thống nhất:

1. Báo cáo tiến độ cài đặt Grizzly.
2. Báo cáo tiến độ tạo image các OS cho Openstack.
3. Thảo luận về kho nguồn mở của nhóm trên github.
4. Thông tin sự kiện offline Openstack tại Hà Nội.
5. Trao đổi thắc mắc của nhóm với mentor thông qua mail.

Tạo image Windows 7 cho Openstack - phần 1

Trong quá trình cài đặt thử nghiệm, nhóm có tìm hiểu và tạo file image của OS Windows 7. Hướng dẫn sau sẽ giúp các bạn có thể tạo 1 image hoàn chỉnh.

Về máy sử dụng để tạo image thì nhóm sử dụng 1 máy ảo chạy trên VMWare sử dụng Ubuntu Desktop 12.04. Bạn copy các file cài đặt cần thiết từ máy host (máy thật) sang máy ảo và bắt đầu tiến hành tạo image.

Lưu ý: trong hướng dẫn, nhóm chỉ tạo với tính chất dùng như một bản trial nên không nhập seri key, nếu bạn tạo 1 image với mục đích thương mại thì cần phải mua bản quyền từ nhà sản xuất.

Bước 1. Tải và copy các file cài đặt sau vào máy Ubuntu.
   - Windows7.iso
   - virtio-win-0.1-59.iso

Bạn chạy lệnh sau để tạo 1 file có tên là windows7.img

sudo kvm-img create -f raw windows7.img 20G















Bước 2. Bạn chạy lệnh sau để dùng QEMU tạo image
sudo kvm -m 2048 -cdrom Windows7.iso -drive file=windows7.img,if=virtio -drive file=virtio-win-0.1-59.iso,index=3,media=cdrom -net nic,model=virtio -net user
Bước 3. Bạn bắt đầu quá trình cài đặt Windows 7 như trên máy vật lý.
Bạn chọn Install now để bắt đầu cài đặt.
Bạn chọn I accept the license terms.
Bạn chọn Custom để cài đặt một bản Windows mới.
Bạn chọn Load Driver để chọn Driver ảo cho image.
Bạn chọn Browse để mở ổ đĩa ảo chứa file Virtio-win-0.1-59.iso để load driver ảo cho image.
Tại đây, nhóm tạo image của windows 7 32bit nên chọn thư mục x86, nếu bạn tạo image bản 64bit thì chọn AMD64.
Sau đó bạn chọn Red Hat Virtio SCSI controller.
Bạn chon Next để cài đặt Windows vào ổ đĩa.
Phần 1 tạm dừng ở đây, trong phần tiếp theo sẽ hướng dẫn tiếp các bước để hoàn thành việc tạo image windows 7.

Hướng dẫn sử dụng Openstack Dashboard - phần 1 - tạo mạng

Sau khi cài đặt hệ thống, ta tiến hành các bước cài đặt thử nghiệm với giao diện Dashboard (có mã là Horizon). Thực chất đây là một giao diện web, giúp người quản trị dễ dàng hơn trong việc cấu hình và quản lý. Ngoài ra, bạn cũng có thể làm các thao tác trực tiếp trên máy Controller (lưu ý là phải export các biến môi trường trước khi sử dụng command trong Controller).

Đăng nhập vào Dashboard bằng tài khoản admin, pass admin_pass (bạn có thể thay đổi trong Controller).






  
  Tạo mạng external để các instance có thể ra internet



Nhập tên của mạng, chọn Project quản lý và nhớ đánh dấu chọn vào External Network.


  Mạng external vừa được tạo ra, ta nhấp chọn vào tên (được đánh dấu xanh) để tạo subnet.





Tại thẻ Subnet, điền Network Address dưới dạng CIDR và Gateway IP. Ở đây mình dùng địa chỉ sub từ mạng NAT trong mô hình cài đặt.



Tại thẻ Subnet Detail, bỏ chọn ở Enable DHCP để ta có thể quản lý Floating IP hiệu quả sau này. Ở mục Allocation Pools, ta điền range IP theo cấu trúc start_IP,end_IP. Điền các DNS server theo từng dòng một như trong hình.

Ta tạo tiếp mạng internal (Flating IP).



Tại thẻ Subnet, tương tự ta cũng điền Network Address theo dạng CIDR và Gateway IP. Với mạng internal ta kích hoạt chế độ DHCP nên không cần điền Allcation Pools, nhưng nhớ vẫn phải điền DNS name servers.


Ta có thể thấy mô hình phác họa 2 mạng vừa tạo thành trong mục Network Topology


Tiếp theo ta sẽ tạo router dùng để kết nối từ mạng internal ra mạng external.


Set gateway ra internet cho router, ở đây sẽ dùng mạng external.


Tiếp theo ta sẽ add interface cho router để kết nối với mạng internal.



·        Mô hình mạng sau khi cài đặt router.

Vậy là ta đã cài đặt 2 mạng để sử dụng cho các instance bao gồm mạng external (Floating IP) để kết nối internet và mạng internal (Flating IP) để cấp cho các instance. Ở phiên bản Grizzly, ta có thể chọn Quantum hoặc Nova-network để quản lý việc cấp IP cho các instance, thành phần DHCP được sử dụng ở máy Network là dnsmasq.

Trong bài tiếp theo sẽ là demo việc khởi tạo các instance và tạo snapshot cũng như thử nghiệm các bản image.