'대역폭제한'에 해당되는 글 2건

  1. 2011.12.02 인터넷 QoS 지원 리눅스 기반 CBQ 연구
  2. 2008.12.26 rsync 활용 미러링 백업 대역폭 제한, 특정파일만 백업
2011. 12. 2. 09:55

인터넷 QoS 지원 리눅스 기반 CBQ 연구




1. 리눅스 기반의 QoS 지원 기술.pdf

2. 인터넷 QoS 제공을 위한 CBQ 기반의 스케줄링 기법에 관한 연구.pdf

3. 지연시간 보장을 위한 향상된 CBQ 정책.pdf

4. Differentiated Service 제공을 위한 CBQ 기반의 패킷 전송 기법에 대한 연구.pdf


Trackback 0 Comment 0
2008. 12. 26. 21:18

rsync 활용 미러링 백업 대역폭 제한, 특정파일만 백업

1. rsync하는 대역폭의 제한, 그리고 --progress 옵션

네트웍이 허락하는 한도내에서 백업을 할 경우에 디스크 액세스가 많아져서 서비스에 지장을 초래할 수
있다면 대역폭 제한 옵션을 사용해보자.

 
# rsync -av --progress conf.tar.gz 192.168.123.11::conf_bak
building file list ...
1 file to consider
conf.tar.gz
    70633661 100%   11.05MB/s    0:00:06  (1, 100.0% of 1)

sent 70642382 bytes  received 36 bytes  10868064.31 bytes/sec
total size is 70633661  speedup is 1.00
 


위는 대역폭이 허용하는 한도내(11.05MB/s)에서 rsync가 이뤄졌다. --bwlimit= 의 단위는 KBPS 이며,
--progress 는 sync되는 진행상태를 보여준다.

 
# rsync -av --bwlimit=1024 --progress conf.tar.gz 192.168.123.11::conf_bak
building file list ...
1 file to consider
conf.tar.gz
    70633661 100% 1017.27kB/s    0:01:07  (1, 100.0% of 1)

sent 70642382 bytes  received 36 bytes  1031276.18 bytes/sec
total size is 70633661  speedup is 1.00
 


2. 특정 시간 이후(또는 특정월)의 파일만 sync하는 방법

하나의 디렉토리에 년월일 구분없이 데이터가 계속 쌓이고 있다고 가정해보자.
그러나 백업을 할 때는

1) 최근 30일 동안 추가 및 변경된 파일만 sync되기를 원하거나
2) 2006년 5월 자료와 6월 자료를 별도 디렉토리로 sync되기를 원한다면

find 명령과 rsync의 --files-from= 옵션을 함께 사용하여 구현해볼 수 있다. --files-from= 옵션은
rsync 2.6.0 버전부터 추가되었으니 이전 버전을 사용하면 http://rsync.samba.org/ 에서 받아 업그레이드
하면 된다.

 
원본 ----> 백업본

DIR  ----> BAK_DIR/01/ (2006.1월 자료)
     ----> BAK_DIR/02/ (2006.2월 자료)
     ----> BAK_DIR/03/ (2006.3월 자료)
     ----> BAK_DIR/04/ (2006.4월 자료)
     ----> BAK_DIR/05/ (2006.5월 자료)
     ----> BAK_DIR/06/ (2006.6월 자료)
 



1) 최근 30일 자료만 모아서 dest/ 로 sync 할 때

 
find . -type f -mtime -30 -print | rsync -av --files-from=- . dest/
 


2) 2006.6월 파일들(수정일 기준)만 특정 서버로 sync를 할 때

 
find . -type f -printf "%TY_%Tm %p\n"|grep "^2006_06"|sed "s/^2006_06 //g" | rsync -av --files-from=- . 192.168.123.2::bak_dir/06
 


find 명령으로 목록을 얻은 후 -> 2006.6월 파일 목록만 grep으로 목록을 뽑아 -> rsync를 한다.
192.168.123.2 서버에는 rsync 데몬이 동작하고, rsyncd.conf에 [bak_dir] 이름의 설정이 있어야 한다.
위에서 사용한 find 의 -printf 옵션에 대해서는 find man 페이지나
http://coffeenix.net/board_view.php?bd_code=36 (유용한 find 명령어 예 모음, 글 좋은진호)을 참고한다.

이를 간단한 스크립트로 작성한 예이다. 년월지정없이 전날의 년월을 기준으로 sync를 한다.

 
#!/bin/bash
#
# by 좋은진호(truefeel)
                                                                                                  
# 하루 전날의 YYYY_MM
DATE=`date --date '1 days ago' '+%Y_%m'`
MM=`  date --date '1 days ago' '+%m'`
                                                                                                  
#
SRC_DIR="/data"
DEST_DIR="192.168.123.2::bak_dir/$MM"
                                                                                                  
#
cd $SRC_DIR
find . -type f -printf "%TY_%Tm %p\n"| grep "^$DATE"|sed "s/^$DATE //g" |rsync -av --files-from=- . $DEST_DIR
 


3. 특정 파일 크기 이하 또는 이상의 파일은 제외하는 방법

--max-size=, --min-size= 옵션으로 특정 크기 이상의 파일은 제외(--max-size=)하거나 이하의 파일은 제외
(--min-size=)할 수 있다. --max-size= 는 rsync 2.6.4부터, --min-size= 는 2.6.7부터 추가된 옵션이다.

Trackback 0 Comment 0