Nhắc lại: cấu trúc đĩa từ Nhiều đĩa phẳng platters, xếp đồng trục trên 1 trục chính spindle Các cần di chuyển đầu đọc/ghi được gắn chung trên 1 trục quay Mỗi mặt đĩa có 1 đầu đọc/gh
Trang 2Đặt vấn đề
Youtube:
– 2009: over 1 billion videos per day
– Bandwidth accounts for about 51% of expenses with arun rate of $1 million per day with content licensingaccounting for 36%
Trang 3Đặt vấn đề
YouTube Video Server (2010):
– May 2010, 2 Billion videos served per day
– More than 24 hours of video uploaded every minute (and+) (2011: 48h /minute)
– Videos usually less than 10 minutes long
– Top videos ("Evolution of Dance", "Charlie Bit My Finger", and Lady Gaga's "Bad Romance“) are approaching 200 millionviews
billion-served-per-day/
Trang 4http://tech.fortune.cnn.com/2010/05/17/youtube-at-5-years-old-2-Đặt vấn đề
Dailymotion:
– Dailymotion is the second largest video site in the worldafter YouTube
– 29th most visited website in the world
– 114 millions unique visitors and more than 1,2 billionsvideo views every month (Comscore, 5/2011)
Trang 61 Truy nhập dữ liệu đa phương
tiện từ đĩa từ
Trang 7Nhắc lại: cấu trúc đĩa từ
Nhiều đĩa phẳng (platters), xếp đồng trục trên 1 trục chính (spindle)
Các cần di chuyển đầu đọc/ghi được gắn chung trên
1 trục quay
Mỗi mặt đĩa có 1 đầu đọc/ghi
Trang 9 tăng tốc (acceleration phase)
chạy ổn định (coast phase)
giảm tốc độ (deceleration phase)
ổn định vị trí (settle phase)
– phép quay (rotational operations)
rotational latency (spin time)
Thời gian = tgian dịch + tgian quay + tgian đọc DL
Trang 10Truy nhập đĩa từ
– MB/s
– Tốc độ ghi và đọc thường khác nhau
– Thường TR được ngầm hiểu là tốc độ đọc, còn tốc độ ghithì thường được chỉ rõ
– hầu hết các đĩa có vận tốc góc quay không đổi (constant
angular veolocity - CAV)
– Thời gian chuyển từ sector x -> sector y là giống nhau
trên tất cả các track
Trang 11chuyển đầu đọc/ghi
rnum số vùng trên mỗi mặt đĩa
ss tốc độ quay (độ / phút)
Trang 12Thời gian đọc DL
dtr
rd j
i time spin
t t Sk j
i readtime ( , ) ( i , j ) _ ( , )
ss rnum
rnum j
i abs j
i time spin _ ( , ) ( ) mod 360 1
rv
t t
abs t
t
Sk ( i , j ) ( i j )
Trang 13Phương pháp lưu trữ phổ biến
– RAID-0
– RAID-1
– RAID-5
– RAID-2, RAID-3, RAID-4, RAID0+1, RAID1+0, …
hệ thống ổ đĩa cứng
– gia tăng tốc độ đọc/ghi dữ liệu
– hoặc/và nhằm tăng thêm sự an toàn của dữ liệu
– block: khối DL nhỏ nhất được quan tâm khi đọc, ghi
Trang 14– 1 đĩa điều khiển + n đĩa dữ liệu (0, 1,…, n-1), n >= 2
– Sử dụng kỹ thuật phân chia (striping): chia dữ liệu thànhcác phần bằng nhau đặt trên nhiều đĩa và không có sựlặp lại DL
– k-stripe: (k<n)
mỗi DL được phân chia trên nhóm gồm k đĩa (1 cluster)
mỗi nhóm có thể được bắt đầu từ bất kỳ đĩa nào
Trang 1515
– Movie 1: blocks: b0, b1, b2, b3, b4 với k = 3 bắt đầu từ đĩa 0
– Movie 2: blocks: c0, c1, c2, c3, c4, c5 với k = 4 bắt đầu từ đĩa 1
– Tổng quát: các block liên tiếp b 0 , b 1 , b 2 , , b r-1 lưu trữ trong
Trang 16 Ưu điểm:
– Tốc độ đọc dữ liệu ra tăng lên do có thể đọc đồng thời từ
k đĩa, tuy nhiên có giới hạn, phụ thuộc vào:
Trang 17 Sử dụng khái niệm đối xứng (mirroring):
– Mỗi đĩa có 1 đĩa đối xứng
– Nếu có N đĩa có thể sử dụng chỉ có n = N/2 đĩa được
sử dụng đồng thời
– Striping có thể được sử dụng cho n đĩa này
Ghi: ghi đồng thời lên đĩa chính + đĩa đối xứng
Đọc: từ đĩa chính hoặc từ đĩa đối xứng nếu đĩa chính hỏng
Ưu: tăng độ an toàn, tin cậy về DL
Nhược: tốn không gian lưu trữ (hiệu suất sử dụng:50%)
Trang 18RAID-1 + striping
Trang 19 RAID-5: striping + parity checking
– Cân đối được không gian lưu trữ và sự an toàn của DL
Mỗi nhóm k đĩa (cluster) sẽ có 1 đĩa parity giúp kiểm tra vàphục hồi DL nếu 1 đĩa trong nhóm bị hỏng
Ví dụ n=k = 4
Trang 20– k = n đĩa (1 cluster), các đĩa được gán nhãn: 0, 1, 2, , n-1
– khối DL được lưu trong (n-1) đĩa, đĩa parity sẽ được xác định từ DL trong (n-1) đĩa
giả sử đĩa parity là đĩa thứ n-1
D i .j: dữ liệu bít thứ j của đĩa i
: phép hoặc loại trừ (exclusive-or)
Dn1 j D0 j D1 j Dn2 j
Trang 22 Lưu ý:
– Phần DL parity có thể được để trên nhiều đĩa khác nhau
Trang 23 Ưu điểm: chỉ sử dụng 1 đĩa cho 1 cluster để phục hồi
dữ liệu khi có sự cố sảy ra
– Có thể đọc/ghi đồng thời trên nhiều đĩa
– Hiệu năng sử dụng cao
– Tăng độ tin cậy, an toàn của DL
Trang 25Yêu cầu lấy dữ liệu từ đĩa của
nhiều clients?
Trang 27 Mỗi y/cầu của client được gán nhãn thời gian
Các y/c được phục vụ theo nhãn tgian này
Trang 28 Dựa trên số tracks cần di chuyển từ vị trí hiện thời của đầu đọc, tính theo 1 chiều (hướng ra tâm hoặc hướng vào tâm)
Trang 29SCAN - EDF
Dựa trên EDF (Earliest Deadline First) + số track
Mỗi y/cầu có 1 nhãn deadline nhóm theo thứ tự tăng dần trong mỗi nhóm, thực hiện SCAN
Trang 30SCAN - EDF
Dựa trên EDF (Earliest Deadline First) + số track
Mỗi y/cầu có 1 nhãn deadline nhóm theo thứ tự tăng dần trong mỗi nhóm, thực hiện SCAN
Trang 31 Group Sweeping
Mixed scheduling
Trang 32Building Disk-based Media Server
Trang 33Yêu cầu
Phục vụ đồng thời cho nhiều client
Client có thể:
– Playback (xem thường)
– Rewind (tua lại)
– Fast-forward (tua đi)
– Pause (tạm dừng),
Trang 34Yêu cầu
Với mỗi client, phải đảm bảo:
– Xem được liên tục
– Tốc độ đẩy DL vào buffer phải hợp lý:
Quá nhanh: DL bị ghi đè
Quá chậm: dịch vụ có thể bị gián đoạn
Trang 35– b: 1 block của movie m ,
– r : là số block client xem trên 1 đơn vị thời gian
– data(i, t): yêu cầu của client Ci tại thời điểm t về các khối DL
Trang 36Yêu cầu từ phía client
Xem bình thường (play – normal view):
Tua đi (fast-forward):
Tua lại (rewind):
Tạm dừng (pause):
ffs: fast forward step
) ,
data
( , ) & ( ) ( ) )
, ( i t m b j ffs j r b i ffs bnum m
) , ( i t m b j rws i r b j rws
data
) ,
Trang 37Yêu cầu từ phía client
Tổng quát hóa:
– Các block được yêu cầu là:
b, (b+ step), (b + 2*step), …, (b + (len-1)*step)
play-normal viewing: step = 1
data
Trang 38Giải thuật hỗ trợ chức năng VCR
Chức năng VCR (Video-Cassette-Recording): play, forward, rewind, pause
fast- Ví dụ: 1 MOD server, có 3 đĩa, giả sử chỉ có 1 movie, gồm 300 blocks đặt trên 3 đĩa
Trang 39Scenario 1: 1 client y/c
Client Hành động Định dạng
data(client,t)
Block được y/c MOD server
u1 ở thời điểm t đang xem block 140, tốc độ r = 2 blocks/đơn vị thời gian, đang
(m, 140, 2, 6) 146, 152 Gửi y/c đến
Disk 1 và Disk 2
Rewind, rws = 6 blocks/s
(m, 140, 2, -6) 134, 128 Gửi y/c đến Disk
1
Trang 40Scenario 2:
2 clients cùng xem đồng thời vào 1 movie
Ở thời điểm nào đó sẽ có 2 y/cầu truy nhập đồng thời
Giả sử ở 1 thời điểm 1 đĩa server chỉ phục vụ được
1 client
Trang 41t u1 xem block 140, tốc độ r = 2 blocks/s, đang được Disk 1 phục vụ
u2 đang xem block 199, tốc độ r = 2 blocks/s
t u 1 fast-forward,
ffs = 5 blocks/s
(m, 140, 2, 5) 140, 145 Gửi y/c đến Disk 1
u 2 play (m, 199, 2, 1) 199, 200 Gửi y/c đến Disk 2
u2: (m, 201, 1, 1) => D2 (m, 202, 1, 1) => D3
C2:splitting&switching
u1: splitting => D1, D2
u2: switching Chuyển toàn bộ giao
dịch của u 2 sang D3
Trang 43Đang sử đụng: (Xem thường, tua, tạm dừng)
Đang ký mới - new (entering) client
Đang ký mới - new (entering) client
Trang 44Giải thuật (…)
Sắp xếp theo thứ tự ưu tiên giảm dần
Các yêu cầu có thể thực hiện được được thực hiện theo thứ tự giảm dần độ ưu tiên
Y/cầu thoát khỏi hệ thống có độ ưu tiên cao nhất
Nếu 1 y/cầu không thể thực hiện được , không thể chuyển hẳn sang server khác thì chia nhỏ y/cầu
(splitting) và chèn lại vào d/sách y/cầu với độ ưu tiên nhỏ hơn (3)
Các yêu cầu từ client mới có độ ưu tiên thấp nhất
Trang 46Tiêu chí (…)
– Bộ đệm: Kích thước bộ đệm của đĩa i có khả năng phục vụ
) ( )
, ,
(
) , ( _
i buf t
i j
bufref
t i active d
buf(i) kích thước bộ đệm cho mỗi DS i.
bufreq(j, i , t) Kích thước bộ đệm cần thiết ở DS i cho client C i sao cho
DL của C i không bị ghi đè
Trang 47Tiêu chí (…)
– Tốc độ đọc DL: tốc độ đọc của đĩa phải đảm bảo đủ nhanh
để phục vụ cho client mới mà tránh không làm client khác bị đẩy ra
)
( )
, (
) (
* ) ,
( )
,
(
) , ( _
i
dtr t
i cyctime
i dtr t
i
switchtime t
j
cons
t i active d
dtr(i) Tốc độ đọc (disk transfert rate), MB/giây
cons(j, t) Tốc độ sử dụng dữ liệu của client C itại thời điểm t
(tốc độ đọc dữ liệu từ bộ điệm của clients Ci )
Trang 48cyctime(i,t) Thời gian cần thiết để DS i phục vụ được hết các yêu
cầu của các client ở thời điểm t
switchtime(i, t) Thời gian cần thiết cho DS i để dịch chuyển đầu đọc từ
Trang 492 Truy nhập dữ liệu từ CD-ROM
Trang 50Cấu trúc
Chỉ có 1 đĩa phẳng
– 1 track dài hình xoáy ốc, được chia thành các sector
có độ dài giống nhau
– Đầu đọc đĩa di chuyển
dọc theo track với vận
tốc không đổi
(vận tốc dài, không phải vận tốc góc như đĩa từ)
Trang 51Đọc dữ liệu từ CD ROM
VD:
– CD có 100 sectors, vị trí đầu đọc hiện tại là sector 58
– Client muốn đọc các sectors 10, 30, 50, 70 và 90,
– Bộ đệm của client có thể chứa được 3 sectors
Trang 52Đọc dữ liệu từ CD ROM
– Đọc sector 70 => 90 => 10 lưu vào bộ đệm
– Sector 10 được lấy ra sử dụng sector 30 được đọcvào bộ đệm
– Sector 30 được sử dụng sector 50 được đọc vào bộđệm
Phần lớn các thiết bị đọc CD không sử dụng cách này
Trang 53Đọc dữ liệu từ CD ROM
– Đọc sector 10, 30, 50 vào buffer
– Sector 10 được sử dụng đọc sector 70 vào buffer
– Sector 30 được sử dụng đọc sector 90 vào buffer
– …
Trang 55Yêu cầu về bộ đệm
Đảm bảo:
– DL hiển thị liên tục phía client (continuity)
– DL trên bộ đệm không bị ghi đè (buffer utilisation)
Trang 56Ký hiệu Diễn giải Đơn vị
bw d Bandwidth of disk to prefetch buffer bytes/second
dcr Decompression rate bytes/second
cons Consumption rate of client Bytes/second
t fill Buffer filling time seconds
Trang 57Xác định kích thước bộ đệm
– Trong t fill (s) , server có thể đọc (t fill x bw d ) (bytes) DL nén
– 1s, client sử dụng cons bytes DL không nén
– 1 byte DL nén tương đương cr bytes DL không nén
– Thời gian tối đa client phải sử dụng DL không nén trong
Trang 58cr dcr
cr dcr
t cr
dcr cons
cons
cr dcr
t bw
sk t
fill
fill d
Trang 59Xác định kích thước bộ đệm (…)
Kích thước bộ đệm tối thiểu:
) 1 (
) (
) (
) (
d fill
bw cr
dcr cons
bw
cr dcr
cons bw
sk t
d d
d
d d
bw cr
dcr cons
bw
cr dcr
cons bw
sk bw
) (
) (
) (
) (
Trang 60Scheduling retrieval of Multisectors from CDROMs
Server nhận các y/cầu để đọc tập sector {s1, s2, , sk},
Tốc độ dịch chuyển của đầu đọc: lv (linear velocity)
Trình tự đọc các sector này thế nào ?
Trang 61Placement Methods
Real-Time File (RTF): bộ (lf, bf, pf)
Trang 62Placement Methods
Real-Time File: bộ (lf, bf, pf)
– l f : độ dài của file = số block
– b f : kích thước khối = số sector / 1 khối
– p f : chu kỳ của file = khoảng cách giữa 2 sector đầu tiên của 2 block liên tiếp nhau
Dễ dàng xác định các sector chứa DL nếu biết vị trí bắt đầu
Trang 63Start Assignment Problem
Xác định vị trí đầu cho 1 tập các file: f 1 , f 2 , …, f n ??
– Tập các file cần lưu trữ: f 1 , f 2 , …, f n
xung đột tài nguyên: không có sector nào chứa DL thuộcnhiều hơn 1 file ?
Trang 64Placement 2 file
Trang 66Bài tập
Giả sử có
– 1 hệ thống MOD có 4 đĩa, sử dụng kiến trúc RAID-0
– có 3 movies m1 (10 blocks), m2 (14 blocks), m3 (7blocks)
Dùng hình vẽ để thể hiện cách lưu trữ các khối DL trên các đĩa nếu:
– Với mỗi movie, kỹ thuật striping được thực hiện trên cả 4đĩa
– Movie m1, m2 được striping trên cả 4 đĩa, còn movie m3được striping trên đĩa 2,3, 4
Trang 68– Xem cùng 1 movie (size MB), bắt đầu cùng thời gian
– Giả sử thời gian cần client đọc từ bộ đệm là = 0
Điều kiện gì để đảm bảo thỏa mãn được yêu cầu của 2clients và không bao giờ phải đọc 1 block 2 lần từ đĩa
Trang 69Bài tập (…)
Đánh giá hiệu quả của các thuật toán FCFS, SCAN, SCAN-EDF (giả sử vị trí đầu đọc luôn ở vị trí 0) về:
– Tổng khoảng cách đầu đọc phải di chuyển
– Thời gian cần thiết để thực hiện thuật toán