Bài đăng nổi bật

Hướng dẫn thay đổi thư mục root mặc định của Docker trên Linux

Hoàn cảnh: người viết gặp một trường hợp như này Được team hạ tầng cấp cho một máy chủ gồm 2 phân vùng lưu trữ, 1 phân vùng 20GB được gắn và...

Hiển thị các bài đăng có nhãn ubuntu. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn ubuntu. Hiển thị tất cả bài đăng

11 tháng 3, 2014

HA trên Ubuntu 12.04 với DRBD

Lưu ý, hiện tại trên bản Ubuntu 12.04 nếu bạn cài bản DRBD đi kèm trên kho của Ubuntu thì có khả năng là bạn sẽ không thể chạy được dịch vụ này. Vì vậy, bạn nên cài từ kho của DRBD là tốt nhất.
Kho của DRDB tại đây: http://oss.linbit.com/drbd
Sau đó bạn làm theo các bước hướng dẫn dưới đây
1 - Cấu hình cho máy chủ
- Sử dụng 2 máy chủ, chạy hệ điều hành như nhau (Ubuntu 12.04 LTS 64 bit)
- Chuẩn bị ổ lưu trữ trên 2 máy chủ như sau:
 ----------------
dev/sda1 * (Boot Flag on) ext3 mounted on / 12G
Swap 4G
/dev/sda3 Extended
/dev/sda5 No file system & not mounted 63.9G (for DRBD data disk)

 -------------------
- Cấu hình tập tin /etc/hosts của 2 máy chủ như sau:
 -------------------
/etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.134 mail.domain.com mail
192.168.0.162 mailbk.domain.com mailbk

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
 -------------------------------------
- Cấu hình tập tin /etc/hostname của 2 máy chủ như sau:
Máy chủ 1:
mail
Máy chủ 2:
mailbk
2 - Cài đặt BRDB:
- Cài các gói thư viện cần thiết:
-----------------
apt-get install flex build-essential linux-headers-`uname -r`
--------------------------
- Cài DRBD từ nguồn như sau :
---------------
wget http://oss.linbit.com/drbd/8.2/drbd-8.2.7.tar.gz
tar –xzvf drbd-8.2.7.tar.gz

cd drbd-8.2.7
make all && make make install
----------------------
- Lưu ý, nếu cài từ nguồn thì thư mục cài mặc định của DRBD sẽ ở đây:
----------------------
usr/local/
/usr/local/etc
/usr/local/etc/init.d
 ---------------------
- Vì vậy hãy chạy lệnh tiếp theo để DRBD khởi động khi máy khởi động:
 ---------------------------
ln -s /usr/local/etc/init.d/drbd -s /etc/init.d/drbd
update-rc.d drbd defaults 70
modprobe drbd
--------------------
3 - Cấu hình cho DRBD
- Sửa lại tập tin cấu hình DRBD như sau:

-------------------------------
# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example

#include "drbd.d/global_common.conf";
#include "drbd.d/*.res";

global { usage-count no; }
resource r0 {
        protocol C;
        startup {
                wfc-timeout 15;
                degr-wfc-timeout 60;
        }
        net {
                cram-hmac-alg sha1;
                shared-secret "secret";
        }
        syncer {
              rate 110M;
              # group 1;
              al-extents 257;
        }
        on mail {
                device /dev/drbd0;
                disk /dev/sda5;
                address 192.168.0.134:7788;
                meta-disk internal;
        }
        on mailbk {
                device /dev/drbd0;
                disk /dev/sda5;
                address 192.168.0.162:7788;
                meta-disk internal;
        }
}

----------------------------




4 - Chuẩn bị ổ đĩa cho DRBD:
- Trên cả 2 máy chủ hãy chạy lênh:
drbdadm create-md r0
/etc/init.d/drbd restart
- Nếu mọi việc đều ổn thì khi chạy lệnh: cat /proc/drbd sẽ có output như sau:
version: 8.4.3 (api:1/proto:86-101)
srcversion: 5CF35A4122BF8D21CC12AE2
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r---n-
    ns:2644932 nr:0 dw:154064 dr:2495677 al:745 bm:160 lo:0 pe:3 ua:15 ap:3 ep:1 wo:f oos:2007064836
        [>....................] sync'ed:  0.2% (1960024/1962592)Mfinish: 49:36:04 speed: 11,232 (11,344) K/sec
- Từ máy chủ chính, chạy lệnh:
drbdadm -- --overwrite-data-of-peer primary r0
mkfs –t ext3 /dev/drbd0
mount –t ext3 /dev/drbd0 /opt

- Để tiến trình chạy cho tới khi nó hoàn thành.

=============================================
Tham khảo thêm tại:
http://helpmelinux.blogspot.com/2009/08/zimbradrbdheartbeat-hi-availability.html
http://rdstash.blogspot.com/2012/11/high-availability-storage-using-drbd.html

26 tháng 3, 2012

Những lệnh Linux người quản trị cần biết (update 10-08-2021)

Phần này mình chỉ đề cập đến những câu lệnh cần thiết mà một người quản trị hệ thống Linux cần biết và nắm rõ. Nội dung diễn giải cho các lệnh được viết theo ý hiểu của tác giả thế nên các bạn không nên thắc mắc tại sao nó lại thế nhé. Các lệnh sẽ được sắp xếp theo thứ tự abc và sẽ được update dần theo thời gian.
A
1. Adduser command
  • Chức năng: Thêm user vào quyền sudo
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có
  • Cấu trúc lệnh: adduser user_name sudo
B
C
1 - Chage command
  • Chức năng: Xem thông tin user trong hệ thống.
  • Hệ điều hành: Linux, *nix.
  • Có sẵn: Có.
  •  Cấu trúc lệnh: 
    • chage -l user
    • chage -E yyyy-mm-dd user: Thay đổi thông tin hết hạn của user.
D
1 - Dig command
  • Chức năng: truy vấn các bản ghi trên DNS
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Có
  • Cấu trúc lệnh: dig [option] domain.com
    Trong đó:
    dig: tên lệnh
    domain.com: tên miền cần truy vấn
    Option: tùy chọn
  • Option bao gồm:
    mx: truy vấn bản ghi MX
    a: truy vấn bản ghi A
2 - dpkg-reconfigure:

  • Chức năng: cấu hình lại tham số một số biến môi trường.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Có
  • Cấu trúc lệnh: dpkg-reconfigure tên_tham_số
    Trong đó:
    dpkg-reconfigure: tên lệnh
    Tên tham số: có thể là tzdata(nếu muốn đổi timezone của máy), java (nếu muốn đổi các thông số liên quan tới java),....
 3 - date
  • Chức năng: xem thông tin thời gian trên hệ thống + chỉnh lại thông tin thời gian trên hệ thống
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Có
  • Cấu trúc lệnh: date tham_số
    Trong đó:
    date: tên lệnh
    Tham số: 04 (Month) 12 (Day) 1600 (Time in 24hour) 2011 (Year). Ví dụ: 041216002011 sẽ đổi giờ hệ thống thành ngày 12 tháng 4 năm 2011 lúc 16h00 
4 - dpkg -l
  •  Chức năng: xem thông tin các gói đã cài đặt trong hệ thống.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Có.
5 - df:
  • Chức năng: Xem thông tin về dung lượng ổ đĩa trong hệ thống.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Có.
E
F
1 - fg command
  • Chức năng: đưa một tiến trình đang chạy từ chế độ background sang foreground
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có
  • Cấu trúc lệnh: fg [process number]
    Trong đó:
    fg: tên lệnh.
    process number: số thứ tự của background process, xem thông qua lệnh jobs.
2 - fping command:
  • Chức năng: một kiểu ping nâng cao
  • Hệ điều hành: Linux, *nix.
  • Có sẵn: không, phải cài thêm.
  • Cấu trúc lệnh: fping domain.com
    Trong đó:
    fping: tên lệnh
    domain.com: địa chỉ remote server
3 - find command:
  • Chức năng: tìm kiếm một tập tin, thư mục chỉ định trong hệ thống.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có.
  • Cấu trúc lệnh: find [path...] [expression]
    Trong đó:
    find : tên lệnh.
    path: đường dẫn cần thực hiện tìm kiếm.
    expression: yêu cầu tìm kiếm
  • Vui lòng xem thêm với lệnh find --help
  • Ví dụ: find /opt/ -name "test*" sẽ tìm kiếm trong thư mục opt tất cả các file có tên bắt đầu là test.
G
1 - Gzip command:
  • Chức năng: nén và giải nén cho định dạng gz.
  • Hệ điều hành: Linux
  • Có sẵn: có
  • Cấu trúc lệnh: gzip [option] filesource [filedestination]
    Trong đó:
    gzip: tên lệnh.
    option: các tùy chọn.
    filesource: file gốc
    filedestination: file đích.
  • option:
    d: giải nén
H
1 - Hostname command
  •  Chức năng: xem hostname của máy
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có
  • Cấu trúc lệnh: hostname [option]
    Trong đó:
    hostname: tên lệnh
    option: các tùy chọn
2 - Hwinfo command:
  •  Chức năng: xem thông tin phần cứng của máy.
  • Hệ điều hành: Linux
  • Có sẵn: không.
  • Câu trúc lệnh: hwinfo [option]
I
1 - ifconfig command
  • Chức năng: xem thông tin card mạng của máy.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có
  • Cấu trúc lệnh: ifconfig [option] tên_card_mạng
    Trong đó:
    ifconfig: tên lệnh
    option: tùy chọn
    tên_card_mạng: có thể là eth0, eth1, wlan0,..
J
K
1 - ssh-keygen
  • Chức năng: unknow
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có
  • Cấu trúc lệnh:
  • Ví dụ: keygen-shh -r : loại bỏ key của một host đã lưu trong hệ thống.
L
1 - lastlog comman
  • Chức năng: liệt kê danh sách các tài khoản đã từng đăng nhập vào hệ thống
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có
  • Cấu trúc lênh: laslog.
2 - ls command
  • Chức năng: xem thông tin của tập tin, thư mục trong hệ điều hành.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Có.
  • Cấu trúc lệnh:
    ls [options]
  • Options:
    -i : xem thông tin inode
    -l : xem dạng thông tin file dài
3 - ldd command:
  • Chức năng: xem các thư viện được sử dụng cho một ứng dụng trên Linux
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Có.
  • Cấu trúc lệnh: ldd [OPTION]... FILE...
  • Options:
4. last

  • Chức năng: Xem người dùng truy cập gần nhất trên hệ thống.
  • Hệ điều hành: Linux, *nix.
  • Có sẵn: có.
  • Cấu trúc lệnh: last.

M
N
1 - nmap command:
  • Chức năng: Hiện tại mình hay dùng lệnh này để xem một remote server đang mở những cổng gì (ngoài ra còn khá nhiều các chức năng khác nhưng mình ít dùng nên không nêu ra ở đây)
  • Hệ điều hành: Linux, *nix
  • Có sẵn: không, phải cài thêm.
  • Cấu trúc lệnh: nmap [option] domain.com
    Trong đó:
    nmap: tên lệnh
    option: các tùy chọn
    domain.com: địa chỉ của remote server.
  • Option bao gồm:
    -p: chỉ quét các cổng chỉ định, ví dụ: nmap -p143 10.2.10.123 --> chỉ quét cổng 143 máy có địa chỉ 10.2.10.123
2 - nload command:
  • Chức năng: xem lưu lượng vào ra trên một card mạng
  • Hệ điều hành: Linux, *nix
  • Có sẵn: không, phải cài thêm
  • Cấu trúc lệnh: nload [option] card_name
    Trong đó:
    nload: tên lệnh
    [option]: các tùy chọn
    card_name: tên card, ví dụ eth0, eth1, wlan0,...
  • option:
    K: xem lưu lượng ở dạng kilobyte
    M: xem lưu lượng ở dạng MB
    G: xem lưu lượng ở dạng GB
    H: auto
    u: thiết lập kiểu đơn vị vào ra cho từng thành phần
    U: thiết lập kiểu đơn vị vào ra cho phần tính tổng lưu lượng
3 - nmblookup command
  • Chức năng: xem thông tin của một máy từ xa.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có
  • Cấu trúc lệnh: nmblookup [option] địa_chỉ_máy
    Trong đó:
    nmblookup: tên lệnh.
    option: các tùy chọn
    địa_chỉ_máy: địa chỉ máy cần xem
  • Option: bao gồm
    a : xem tất cả mọi thông tin
4 - nohup:
  • Chức năng: giữ cho một tiến trình chạy ngay cả khi terminal bị tắt.
  • Hệ điều hành: Linux
  • Có sẵn: có
  • Cấu trúc lệnh: nohup lệnh [tùy chọn] &
    Trong đó:
    nohup: tên lệnh
    lệnh: lệnh cần giữ.
    tùy chọn: các tùy chọn của lệnh cần giữ.
    &: đẩy lệnh cần giữ xuống chạy nền.
  •  Sau khi chạy, gõ ctrl + D để thoát khỏi màn hình ssh.
  • Ví dụ: để chạy lệnh nohup ta làm như sau:
  • nohup command &   # create nohup.out
    nohup command >/dev/null 2>&1 &   # doesn't create nohup.out 
     
O
P
1 - perldoc command
  • Chức năng: xem thông tin trợ giúp về các hàm, lớp trong ngôn ngữ Perl.
  • Hệ điều hành: Linux,*nix.
  • Có sẵn: không rõ.
  • Cấu trúc lệnh: perl Tên_hàm_lớp_cần_truy_vấn.
  • Ví dụ: perldoc File::Copy
2 - pidoff command
  • Chức năng: xem id của một tiến trình.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Có
  • Cấu trúc lệnh: pidof tên_chương_trình
3 - passwd
  • Chức năng: đổi mật khẩu của user.
  • Hệ điều hành: Linux, *nix.
  • Có sẵn: Có.
  • Cấu trúc lệnh: passwd
  • Trong đó option là:
    • l: loại bỏ password của người dùng.
Q
R
S
1 - ssh command
  • Chức năng: tạo một kết nối SSH tới một remote server
  • Hệ điều hành: Linux
  • Có sẵn: có
  • Cấu trúc câu lệnh:
    ssh user@domain.com
    Trong đó:
    ssh: tên lệnh
    user: tên user cần kết nối trên remote server
    domain.com: địa chỉ ip hoặc domain của remote server
2 - stat command:
  • Chức năng: xem thông tin thống kê của một tập tin.
  • Hệ điều hành: Linux
  • Có sẵn: Có.
  • Cấu trúc câu lệnh:
    stat /đường/dẫn/tới/file.
3 - scp command:
  • Chức năng: Copy tập tin giữa hai máy tính
  • Hệ điều hành: Linux, Unix
  • Có sẵn: Có.
  • Cấu trúc câu lệnh:
    scp [option]  [[user@]host1:]file1 ... [[user@]host2:]file2
  • Trong đó:option là các tùy chọn
    • -P: Port sử dụng
T
1 - Top command
  • Chức năng: xem thông tin tiến trình và các tài nguyên hệ thống.
  • Hệ điều hành: Linux, *nix.
  • Có sẵn: có
  • Cấu trúc lệnh: top
2 - Tail command:
  • Chức năng: xem nội dung một file.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có
  • Cấu trúc lệnh: tail [option] path
    Trong đó:
    tail: tên lệnh
    option: các tùy chọn
    path: đường dẫn tới file cần xem.
  • Option bao gồm:
    f: xem nội dung file theo thời gian thực
    chữ số: xem số dòng cuối cùng của file đúng bằng số đã nhập vào.
3 - Traceroute command
  • Chức năng: rà tuyến đường của gói tin tới một địa chỉ đích
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có.
  • Cấu trúc lệnh: traceroute [option] địa_chỉ_đích
    Trong đó:
    traceroute: tên lệnh
    địa_chỉ_đích: địa chỉ máy đích cần tìm đường
    option: các tùy chọn của lệnh
4 - Tar command
  •  Chức năng: nén và giải nén tập tin, thư mục trong linux.
  • Hệ điều hành: Linux, *nix
  • Có sẵn: có.
  • Cấu trúc lệnh: tar [options] tên_file_nén tên_file_hoặc_thư_mục_cần_nén
    Trong đó:
    tar: tên lệnh
    options: các tùy chọn
  • ví dụ để nén một thư mục ta gõ lệnh tar -zcvf file.tar.gz /home/user/data
  • Để nén một thư mục ta dùng lệnh sau: tar -zcvf prog-1-jan-2005.tgz /home/jerry/prog
U
1 - uname command
  • Chức năng: xem thông tin  tổng quan về hệ điều hành
  • Hệ điều hành: dòng debian
  • Có sẵn: có
  • Cấu trúc lệnh: uname [option]
    Trong đó:
    uname: tên lệnh
    option là các tham số đầu vào.
  • Option có thể là:
    a : xem tất cả
2. Useradd command
  • Chức năng: tạo tài khoản mới cho hệ thống
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Có.
  • Cấu trúc lệnh:  useradd [option] user_name
    Trong đó:
    user_name: là tên tài khoản cần thêm
    option là các tùy chọn
  • Ví dụ:
    useradd -e {yyyy-mm-dd} {username} - Thêm user và ngày user này sẽ bị hết hạn - useradd -e 2008-12-31 jerryuseradd -f {days} {username} - Thêm user và ngày hết hạn mật khẩu - useradd -e 2009-12-31 -f 30 jerry

V
W
1 - Whois command
  • Chức năng: tra cứu thông tin của một tên miền (thực ra theo đúng định nghĩa thì là tra cứu thông tin một đối tượng trong cơ sở dữ liệu RFC 3291)
  • Hệ điều hành: Linux, *nix
  • Có sẵn: Không
  • Cấu trúc lệnh: whois [option] tên_miền
    Trong đó:
    whois: tên lệnh
    option: các tùy chọn
    tên_miền: tên miền cần tra cứu
X
Y
Z