Mở rộng cơ sở dữ liệu với ổ cứng SSD giá rẻ


25

Tôi hy vọng rằng nhiều bạn đang làm việc với các trang web điều khiển cơ sở dữ liệu lưu lượng truy cập cao và rất có thể các vấn đề về khả năng mở rộng chính của bạn nằm trong cơ sở dữ liệu. Tôi nhận thấy một vài điều gần đây:

  1. Hầu hết các cơ sở dữ liệu lớn đòi hỏi một nhóm các DBA để mở rộng quy mô. Họ liên tục phải vật lộn với những hạn chế của ổ cứng và kết thúc bằng các giải pháp rất tốn kém (SAN hoặc RAID lớn, cửa sổ bảo trì thường xuyên để chống phân mảnh và phân vùng lại, v.v.) quá dốc đối với tôi :)

  2. Cuối cùng, chúng tôi đã có một số công ty như Intel, Samsung, FusionIO, v.v. mới bắt đầu bán ổ cứng SSD cực nhanh nhưng giá cả phải chăng dựa trên công nghệ SLC Flash. Các ổ đĩa này nhanh hơn 100 lần trong việc đọc / ghi ngẫu nhiên so với các ổ cứng quay tốt nhất trên thị trường (lên tới 50.000 ghi ngẫu nhiên mỗi giây). Thời gian tìm kiếm của họ gần như bằng không, vì vậy chi phí cho I / O ngẫu nhiên giống như I / O tuần tự, rất tuyệt vời cho cơ sở dữ liệu. Các ổ SSD này có giá khoảng $ 10- $ 20 mỗi gigabyte và chúng tương đối nhỏ (64GB).

Vì vậy, dường như có một cơ hội để tránh chi phí rất lớn cho việc mở rộng cơ sở dữ liệu theo cách truyền thống bằng cách đơn giản xây dựng một ổ đĩa SSD 5 đủ lớn (chỉ tốn vài nghìn đô la). Sau đó, chúng tôi không quan tâm nếu tệp cơ sở dữ liệu bị phân mảnh và chúng tôi có thể đủ khả năng ghi đĩa gấp 100 lần mỗi giây mà không phải trải rộng cơ sở dữ liệu trên 100 trục chính. .

Có ai khác quan tâm đến điều này? Tôi đã thử nghiệm một vài ổ SSD và có thể chia sẻ kết quả của mình. Nếu bất cứ ai trên trang web này đã giải quyết được nút cổ chai I / O của họ bằng SSD, tôi rất thích nghe những câu chuyện chiến tranh của bạn!

Tái bút Tôi biết rằng có rất nhiều giải pháp đắt tiền hiện có giúp mở rộng quy mô, ví dụ như SAN dựa trên RAM đã được chứng minh thời gian. Tôi muốn rõ ràng rằng thậm chí $ 50K là quá đắt cho dự án của tôi. Tôi phải tìm một giải pháp có giá không quá 10 nghìn đô la và không mất nhiều thời gian để thực hiện.


Dave, NXC và Burly,

Cảm ơn bạn đã trả lời! Tôi muốn làm rõ rằng từ "giá rẻ" rất quan trọng trong tình huống của tôi. Vì vậy, tôi phải sử dụng các máy chủ Dell giá rẻ (4K $ 2950 chỉ có 8 ngân hàng bộ nhớ). Tôi đã cài đặt 32GB RAM, vì vậy tôi không thể tiếp tục mở rộng theo cách này. Bên cạnh đó, việc thêm RAM không cứu bạn khỏi các tắc nghẽn WRITE trên đĩa, đây là vấn đề chính của tôi ngay bây giờ.

Tôi đã từng quan tâm đến tuổi thọ của SSD, nhưng sau khi đọc về các thuật toán cân bằng hao mòn hiện đại, tôi khá chắc chắn rằng các ổ đĩa này sẽ tồn tại đủ lâu. Cơ sở dữ liệu của tôi ghi 300GB mỗi ngày và dự kiến ​​sẽ tăng hơn 1TB mỗi ngày trong năm 2009. SSD doanh nghiệp được thiết kế để xử lý khoảng 10TB ghi mỗi ngày trong nhiều năm.

Tôi không đồng ý với quan điểm của Burly rằng phải mất quá nhiều lao động để chuyển từ SAS sang SSD. Cơ sở dữ liệu của tôi là một máy nhân bản đồng bộ, vì vậy tôi có thể nâng cấp một mặt của gương, sau đó xem nó trong vài tháng và nếu nó thổi tôi có thể chuyển sang máy chủ thứ hai vẫn còn ổ cứng SAS cũ ...


2
BTW, trong khi bạn nêu cách hiệu suất được cải thiện có khả năng giảm chi phí phần cứng, bạn không thể hiện rõ ràng cách thức SSD sẽ giảm chi phí chính của bạn - lao động. Tôi cho rằng có lẽ đang nhận được một thực tế rằng việc giảm kích thước cài đặt có thể làm giảm các yêu cầu nhân sự của bạn
Burly

2
Cơ sở dữ liệu của tôi đã vui vẻ chạy trên sản xuất trong 3 năm mà không cần bất kỳ DBA hay chuyên gia tư vấn toàn thời gian nào. Sau đó, tải tăng lên đến mức chúng ta va vào các nút thắt I / O. Vì vậy, tôi có thể phải trả rất nhiều tiền cho các DBA để phân vùng và chống phân mảnh cơ sở dữ liệu. Hoặc chỉ nhận được một số ổ SSD giá rẻ.
Dennis Kashkin

Tôi đã cập nhật câu trả lời của mình để thảo luận về các hạn chế chi phí bạn đã thêm. Tùy thuộc vào không gian, kích thước, hiệu suất, bảo trì và yêu cầu sửa đổi của DB của bạn, SSD chắc chắn có thể cung cấp một giải pháp hiệu quả về chi phí. Thiết kế giải pháp và phân tích chi phí nằm ngoài phạm vi của chúng tôi ở đây. May mắn nhất!
Burly

Bạn đã uống quá nhiều koolaid, tốt nhất là SSD, đọc nhanh hơn 1,5 lần so với ổ RAID, nhưng ghi chậm hơn đĩa từ. Một Sans dựa trên sợi quang với RAID tốc độ cao sẽ phá hủy mọi ổ SSD cho dù nó có tốt đến đâu.
TravisO

Chỉ muốn chia sẻ - chúng tôi đã chạy cơ sở dữ liệu 400 GB trên SSD được 5 tháng rồi. Cơ sở dữ liệu này nhận được rất nhiều hoạt động ghi (lên tới 1200 giao dịch mỗi giây). Chúng tôi không có vấn đề gì cho đến nay và hiệu suất đã tốt hơn đáng kể so với RAID10 với ổ đĩa SAS 15K vòng / phút. Các đĩa không hoạt động 96%. Vì vậy, xem xét rằng SSD hiện đang trở nên rẻ đến mức đáng kinh ngạc (600 đô la cho ổ đĩa 160 GB của Intel), tôi sẽ khẳng định rằng đây là cách tốt hơn để mở rộng I / O so với SAN.
Dennis Kashkin

Câu trả lời:


20

Các vấn đề tiềm ẩn

Tôi có một vài vấn đề với việc sử dụng SSD cho cơ sở dữ liệu sản xuất tại thời điểm hiện tại

  • Phần lớn các giao dịch cơ sở dữ liệu trên phần lớn các trang web được đọc không ghi. Như Dave Markle đã nói, trước tiên bạn tối đa hóa hiệu suất này với RAM.
  • SSD mới xuất hiện trên thị trường chính và doanh nghiệp và không có quản trị viên nào xứng đáng chuyển cơ sở dữ liệu sản xuất hiện yêu cầu đĩa 15K RPM U320 trong RAID5 giao tiếp qua fibrechannel sang công nghệ chưa được chứng minh.
  • Chi phí nghiên cứu và thử nghiệm chuyển sang công nghệ mới này, kiểm tra nó trong môi trường của họ, cập nhật các quy trình vận hành, v.v. là chi phí trước lớn hơn, cả về thời gian và tiền bạc, so với hầu hết các cửa hàng phải dự phòng.

Lợi ích đề xuất

Điều đó nói rằng, có một số mặt hàng, ít nhất là trên giấy, có lợi cho SSD trong tương lai:

  • Tiêu thụ điện năng thấp hơn so với ổ cứng
  • Sinh nhiệt thấp hơn nhiều
  • Hiệu suất cao hơn trên mỗi watt so với ổ cứng
  • Thông lượng cao hơn nhiều
  • Độ trễ thấp hơn nhiều
  • Hầu hết các ổ SSD thế hệ hiện tại đều có độ bền hàng triệu chu kỳ ghi, do đó độ bền ghi không phải là vấn đề như trước đây. Xem một bài viết hơi ngày ở đây

Vì vậy, đối với một điểm chuẩn hiệu suất nhất định, khi bạn tính tổng chi phí sở hữu bao gồm chi phí điện trực tiếp và làm mát gián tiếp, SSD có thể trở nên rất hấp dẫn. Ngoài ra, tùy thuộc vào các chi tiết của môi trường của bạn, việc giảm số lượng thiết bị cần thiết cho một mức hiệu suất nhất định cũng có thể dẫn đến việc giảm yêu cầu nhân sự, giảm chi phí lao động.

Chi phí và hiệu suất

Bạn đã thêm rằng bạn có một ràng buộc chi phí dưới $ 50K USD và bạn thực sự muốn giữ nó dưới $ 10K. Bạn cũng đã tuyên bố trong một bình luận rằng bạn có thể nhận được một số ổ SSD "giá rẻ", nói rằng SSD sẽ rẻ hơn so với các DBA hoặc chuyên gia tư vấn. Điều này có thể đúng tùy thuộc vào số giờ bạn sẽ cần DBA và liệu đó có phải là chi phí tái sử dụng hay không. Tôi không thể làm phân tích chi phí cho bạn.

Tuy nhiên, một điều bạn phải rất cẩn thậnloại SSD bạn nhận được. Không phải tất cả các ổ SSD đều được tạo ra như nhau. Nhìn chung, các ổ SSD "giá rẻ" mà bạn thấy được bán với giá 200-400 đô la (2008/11/20) được dành cho các môi trường năng lượng / nhiệt thấp như máy tính xách tay. Những ổ đĩa này thực sự có mức hiệu năng thấp hơn so với ổ cứng 10K hoặc 15K RPM - đặc biệt là để ghi. Các ổ đĩa cấp doanh nghiệp có hiệu suất sát thủ mà bạn nói đến - như dòng Mtron Pro - khá đắt. Hiện tại họ đang ở xung quanh:

  • 400 USD cho 16 GB
  • 900 USD cho 32 GB
  • 1400 USD cho 64 GB
  • 3200 USD cho 128 GB

Tùy thuộc vào không gian, hiệu suất và yêu cầu dự phòng của bạn, bạn có thể dễ dàng thổi ngân sách của mình.

Ví dụ: nếu các yêu cầu của bạn cần tổng cộng 128GB dung lượng lưu trữ khả dụng thì RAID 0 + 1/10 hoặc RAID 5 với 1 điểm nóng sẽ là ~ 5600 đô la

Tuy nhiên, nếu bạn cần một TB dung lượng lưu trữ khả dụng, thì RAID 0 + 1/10 sẽ là ~ $ 51K và RAID 5 với 2 điểm nóng sẽ là ~ $ 32K.

Bức tranh lớn

Điều đó nói rằng, việc cài đặt, cấu hình và bảo trì cơ sở dữ liệu sản xuất lớn đòi hỏi một cá nhân có tay nghề cao. Dữ liệu trong DB và các dịch vụ được cung cấp từ dữ liệu đó có giá trị rất cao đối với các công ty có mức yêu cầu về hiệu suất này. Ngoài ra, có nhiều điều không thể giải quyết bằng cách ném phần cứng vào vấn đề. Một DBMS được cấu hình không đúng, một lược đồ cơ sở dữ liệu hoặc chiến lược lập chỉ mục kém có thể / phá hỏng / hiệu năng của DB. Chỉ cần xem các vấn đề mà Stackoverflow gặp phải khi di chuyển sang SQL Server 2008 tại đâyđây. Thực tế của vấn đề là, một cơ sở dữ liệu là một ứng dụng vất vả trên không chỉ đĩa mà cả RAM và CPU. Cân bằng vấn đề hiệu suất đa biến cùng với tính toàn vẹn dữ liệu, bảo mật, dự phòng và sao lưu là một chút khó khăn.

Tóm lại, trong khi tôi nghĩ rằng bất kỳ và tất cả các cải tiến cho cả công nghệ phần cứng và phần mềm đều được cộng đồng hoan nghênh, quản trị cơ sở dữ liệu quy mô lớn - như phát triển phần mềm - là một vấn đề khó khăn và sẽ tiếp tục yêu cầu công nhân lành nghề. Một cải tiến nhất định có thể không gặt hái được chi phí giảm lao động mà bạn hoặc một công ty có thể hy vọng.

Một điểm nhảy tốt cho một số nghiên cứu có thể là trang web / blog của Brent Ozar tại đây . Bạn có thể nhận ra tên anh ấy - anh ấy là người đã hỗ trợ đội ngũ stackoverflow về các vấn đề hiệu năng MS SQL Server 2008 của họ. Blog và tài nguyên của anh ấy liên kết để cung cấp khá nhiều chiều rộng và chiều sâu.

Cập nhật

Bản thân Stackoverflow đang đi theo lộ trình dựa trên SSD của người tiêu dùng để lưu trữ. Đọc về nó ở đây: http://blog.serverfault.com/post/our-st Storage-decision /

Tài liệu tham khảo


Câu trả lời tuyệt vời.
NotMe

Bạn đã dành quá nhiều thời gian cho việc này: P
TravisO

Giải thích tuyệt vời. Cắt ra trong gỗ cho tất cả mọi người. Công việc tốt!
BerggreenDK

4

Nếu bạn có một trang web có lưu lượng truy cập thực sự cao, thực sự có thể hưởng lợi từ SSD để tăng hiệu suất ghi, thì có lẽ bạn sẽ gặp vấn đề với tuổi thọ của SSD, vì vậy tôi chưa bán chúng cho điều đó.

Với ý nghĩ đó, phải làm gì với cơ sở dữ liệu có mức độ đọc cao? Câu trả lời rất đơn giản: làm kẹt máy chủ với càng nhiều RAM càng tốt. Bạn sẽ thấy rằng các bảng nóng nhất hầu như luôn được giữ trong bộ nhớ cache RAM và bất kỳ lần truy cập lớn nào vào đĩa có thể là do quét bảng lớn hoặc chỉ mục, thường có thể được tối ưu hóa với việc lập chỉ mục thích hợp.


Tôi sẽ xem lại nhận xét của bạn về mối quan tâm về tuổi thọ của SSD. Về mặt MTBF, SSD có xếp hạng cao hơn nhiều so với ổ cứng. Về độ bền của chu trình ghi - trước đây là một vấn đề, thế hệ hiện tại là> 1 triệu chu kỳ ghi, làm cho điều này không thành vấn đề, đặc biệt là trong cấu hình RAID.
Burly

(Không có ký tự) ... Không phải là bạn không nên quan tâm đến tuổi thọ của SSD, chỉ là các xếp hạng kỹ thuật hiện tại cho thấy rằng SSD tương đương hoặc vượt trội so với đối tác ổ cứng. Việc SSD không có nhiều thập kỷ kinh nghiệm trong sản xuất có nghĩa là chúng chưa được chứng minh.
Burly

SSD chạy chậm hơn so với HD
TravisO

SSD thường nhanh hơn đáng kể khi ghi ngẫu nhiên, đặc biệt là ghi ngẫu nhiên 4K. Chúng có thể chậm hơn khi ghi tuần tự, nhưng điều đó không nhất thiết quan trọng đối với máy chủ cơ sở dữ liệu.
ChrisInEdmont

1

Tôi đã làm việc như một DBA trong hơn 5 năm và suy nghĩ về các cách để cải thiện hiệu suất DB luôn ở phía sau của tôi. Tôi đã xem không gian SSD và tôi nghĩ rằng chúng chắc chắn đang ngày càng trở thành một lựa chọn khả thi.

Kiểm tra này;

http://i.gizmodo.com/5166798/24-solid-state-drive-open-all-of-microsoft-office-in-5-seconds

Ngoài ra còn có một sản phẩm mới do Acard sản xuất có tên ANS-9010, đây là phiên bản cải tiến của GC-Ramdisc, cho phép bạn sử dụng ram DDR2 để tạo ra Ổ đĩa SATA (tối đa 64gig) bằng cách sử dụng gậy DDR2 với lý thuyết 400MB / s tối đa.

http://techreport.com/articles.x/16255/3

^^ Nhưng một điều khác hữu ích trong bài viết đó là nó so sánh ANS-9010 với tất cả những người chơi trên thị trường SSD và hóa ra Intel có SSD 64 GB x25-E tương đương với ramdisk phần cứng.

Điều khiến tôi lo lắng về việc SSD sẽ làm chúng hao mòn với tất cả sự căng thẳng mà một DB lớn sẽ đặt chúng qua, và vì vậy bạn phải sử dụng cuộc đột kích để phản chiếu các ổ đĩa có nghĩa là bạn phải trả gấp đôi;

Và nhược điểm của ramdisk phần cứng là pin, trong trường hợp bị cắt điện chỉ cung cấp năng lượng cho nó quá lâu nên bạn phải tìm ra một cách ưa thích để sao lưu. Tôi tin rằng bạn cũng có thể mua phích cắm điện cho họ nhưng sau đó vẫn phụ thuộc vào UPS của bạn.

Tôi khuyên bạn nên sử dụng đĩa ram phần cứng cho tệp trao đổi tạm thời DB và windows - và đặt cơ sở dữ liệu trên Intel X25-E Extreme (khoảng 600 USD cho 64 gigabyte).

Dù sao nó cũng sẽ hét lên và làm cho tất cả những người còn lại rất ghen tị.

(Cũng xem xét sử dụng ANS-9010 khác để lưu trữ trang web)

Chúc mừng, Dave


1

Chúng tôi chỉ kết hợp một máy chủ w2k3 r2 64bit Sql 2008 trên gương lai kép 2,5 inch Seagate Momentus XT - 1/4 đột quỵ cho HĐH và 1/4 đột quỵ cho DB. Vì vậy, đã sử dụng 125GB cho hệ điều hành và 125GB cho DB. đã nhận được 1500MB / s đến 1900MB / s seq đọc. Trên Intel i7 2600K 3,4Ghz 8GB


0

Có những sản phẩm trên thị trường như Cái này làm được điều này. Ngoài ra, như người đăng khác nói, việc thêm RAM vào máy chủ DB sẽ giúp bạn có tốc độ truy cập bộ đệm tốt hơn, giúp giảm lưu lượng đĩa.

Các máy chủ Opteron 8 ổ cắm như Sun X4600 sẽ cho phép bạn đặt tối đa 256GB RAM với giá vẫn rẻ hơn một nhóm DBA lớn. Bạn cũng có thể xem xét sử dụng các tệp phẳng thay vì DBMS (như công ty này đã làm), điều này sẽ mang lại cho bạn hiệu suất tốt hơn so với DBMS. Trong trường hợp này, SAN sẽ cung cấp cho bạn một mức độ toàn vẹn dữ liệu. Tuy nhiên, bạn sẽ phải thiết kế chiến lược truy cập dữ liệu của mình một cách cẩn thận để tránh rơi vào tình trạng lộn xộn. Rõ ràng khá nhiều trang phục dot-com khối lượng lớn làm điều này. Nó hiệu quả hơn đáng kể so với DBMS, cho phép phần cứng khá dành cho người đi bộ xử lý tải trọng lớn và tránh phí cấp phép DBMS.


-1

Ổ SSD dựa trên bộ nhớ flash NAND (MLC hoặc SLC). Nếu bạn đang mua ổ SSD ở dạng hệ số SATA (2 hoặc 3), bạn đang giới hạn hiệu suất bạn có thể thoát khỏi chúng. Thông thường, các ổ SSD dựa trên bộ điều khiển Sandforce SF-1200 nhanh cho tốc độ đọc 220MB / giây và ghi 205MB / giây - nhanh hơn nhiều so với đĩa quay cơ học kiểu cũ.

Tuy nhiên, nếu bạn chuyển sang một giải pháp PCIe như FusioIO, không có đầu nối chậm SATA 2 hoặc SATA 3, bạn đang xem xét các giải pháp nhanh hơn 10-50 lần so với các con bò cơ học (ý tôi là đĩa).

Vì vậy, đối với giải pháp "giá rẻ" của bạn, hãy sử dụng bộ nhớ SATA 2/3 SDD dựa trên bộ điều khiển Sandforce SF-1200. Điều này sẽ giúp bạn cải thiện tốc độ gấp 3-5 lần (dựa trên kinh nghiệm thực tế). Nếu bạn có ngân sách, hãy đến FusioIO. Không có gì sẽ đánh bại nó về hiệu suất. Nó là cực kỳ nhanh chóng. Dự kiến ​​sẽ chi 20.000 đến 50.000 đô la mặc dù.


2
Lối ngụy biện. Một ổ SSD hiện đại có giá trị khoảng 50.000 IOPS, cho phép lưu lượng truy cập 580mb. SAS tạo ra ít hơn 500 IOPS. Cơ sở dữ liệu không phải là máy chủ tập tin.
TomTom
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.