Project

General

Profile

BlueStore SMR Support GSOC 2016 Progress Report » History » Version 3

Shehbaz Jaffer, 05/12/2016 04:44 AM

1 1 Shehbaz Jaffer
h1. BlueStore SMR Support GSOC 2016 Progress Report
2
3
This page contains documentation of the Progress made for GSOC 2016. For main page, redirect "here":http://tracker.ceph.com/projects/ceph/wiki/BlueStore_SMR_Support
4
5
h3. TimeLine
6
7
|_. Day  |_. Event |
8
| -22-April-19:00-UTC- | -Accepted-student-proposals-announced-on-the-Google-Summer-of-Code-2016-site- |
9
|*Community Bonding Period* | *Students get to know mentors, read documentation, get up to speed to begin working on their projects*|
10
|23 May	| Students begin coding for their Google Summer of Code projects; Google begins issuing initial student payments provided tax forms are on file and students are in good standing with their communities. |
11
|Work Period | Mentors give students a helping hand and guidance on their projects.|
12
|20 June 19:00 UTC |	Mentors and students can begin submitting mid-term evaluations.|
13
|27 June 19:00 UTC |	Mid-term evaluations deadline; Google begins issuing mid-term student payments provided passing student survey is on file. |
14
|Work Period |	Mentors give students a helping hand and guidance on their projects.|
15
|15 August - 23 August 19:00 UTC |	Final week: Students tidy code, write tests, improve documentation and submit their code sample. Students also submit their final mentor evaluation.|
16
|23 August - 29 August 19:00 UTC |	Mentors submit final student evaluations.|
17
|30 August |	Final results of Google Summer of Code 2016 announced|
18
|Late October |	Mentor Summit at Google. Mentors and Organization Administrators from each participating organization are invited to Google for an unconference to collaborate on ideas to make the program better and to make new friends too!|
19
20
h3. Weekly Progress Summary
21
22
|_. Week  |_. Date    |_. Documentation |_. Development |_. Testing |_. AOB |
23
| Week1     | Apr 25 - May 1  | Created Wiki        | Setting Up Ceph Development Environment |  | Install procedure "here":http://docs.ceph.com/docs/master/install/build-ceph/ |
24
| | | [TODO] Create Architecture diagram | | | |
25 2 Shehbaz Jaffer
| | | [TODO] Document Changes reuired in code | | | Share with Mentor |
26
| Week2-Week3     | Apr 1 - May 15  | Exploring SMR Drives       | Setting Up Ceph Development Environment |  |  |
27 3 Shehbaz Jaffer
28
29
h4. SMR Drives
30
31
The SMR drives that we obtained are Seagate Archive SMR Drives 8TB in size (7.23 GB usable space). It was earlier proposed that these SMR drives are Drive Managed, but now it seems they are host aware SMR drives.
32
I used libzbc and ran tests on the SMR dirves to see if they work. Since Linux 3.19, each block device in Linux is also indentified as /dev/sg<X>. 
33
I have 2 HDDs in my machine. The first HDD has OS installed. The second HDD is the Host Aware SMR drive.
34
35
<pre><code class="C">
36
cat /proc/scsi/scsi
37
Attached devices:
38
Host: scsi0 Channel: 00 Id: 00 Lun: 00
39
  Vendor: ATA      Model: SAMSUNG SP2504C  Rev: 0-52
40
  Type:   Direct-Access                    ANSI  SCSI revision: 05
41
Host: scsi1 Channel: 00 Id: 00 Lun: 00
42
  Vendor: ATA      Model: ST8000AS0022-1WL Rev: SN01
43
  Type:   Direct-Access                    ANSI  SCSI revision: 05
44
</code></pre>
45
46
The first device is identified as /dev/sg0, second device as /dev/sg1 and so on.
47
when we run libzbc tests, we get the following results:
48
49
<pre><code class="C">
50
 sudo ./zbc_test.sh /dev/sg1
51
Executing command completion tests...
52
    010: REPORT_ZONES command completion...                                                                             [Passed]
53
    011: REPORT_ZONES (partial bit) command completion...                                                               [Passed]
54
    012: REPORT_ZONES (reporting option 0x10) command completion...                                                     [Passed]
55
    013: REPORT_ZONES (reporting option 0x11) command completion...                                                     [Passed]
56
    014: REPORT_ZONES (reporting option 0x3F) command completion...                                                     [Passed]
57
    020: OPEN_ZONE command completion...                                                                                [Passed]
58
    030: CLOSE_ZONE command completion...                                                                               [Passed]
59
    040: FINISH_ZONE command completion...                                                                              [Passed]
60
    050: RESET_WRITE_PTR command completion...                                                                          [Passed]
61
    060: WRITE command completion...                                                                                    [Passed]
62
    070: READ command completion...                                                                                     [Passed]
63
Executing sense key, sense code tests...
64
    010: REPORT_ZONES logical block out of range...                                                                     [Failed]
65
        => Expected Illegal-request / Logical-block-address-out-of-range
66
           Got  / 
67
    011: REPORT_ZONES invalid reporting option...                                                                       [Failed]
68
        => Expected Illegal-request / Invalid-field-in-cdb
69
           Got Illegal-request / Unaligned-write-command
70
    020: OPEN_ZONE invalid zone start lba...                                                                            [Passed]
71
    021: OPEN_ZONE insufficient zone resources...                                                                       [ N/A  ]
72
    022: OPEN_ZONE insufficient zone resources (ALL bit set)...                                                         [ N/A  ]
73
    023: OPEN_ZONE conventional zone...                                                                                 [Passed]
74
    030: CLOSE_ZONE invalid zone start lba...                                                                           [Passed]
75
    031: CLOSE_ZONE conventional zone...                                                                                [Passed]
76
    040: FINISH_ZONE invalid zone start lba...                                                                          [Passed]
77
    041: FINISH_ZONE conventional zone...                                                                               [Passed]
78
    050: RESET_WRITE_PTR invalid zone start lba...                                                                      [Passed]
79
    051: RESET_WRITE_PTR conventional zone...                                                                           [Passed]
80
    060: READ access sequential zone LBAs after write pointer...                                                        [Passed]
81
    061: READ sequential zones boundary violation...                                                                    [Passed]
82
    062: READ conventional/sequential zones boundary violation...                                                       [Passed]
83
    070: WRITE unaligned write in sequential zone...                                                                    [Passed]
84
    071: WRITE sequential zone boundary violation...                                                                    [Passed]
85
    072: WRITE insufficient zone resources...                                                                           [Passed]
86
Executing zone state machine tests...
87
    001: OPEN_ZONE empty to explicit open...                                                                            [Passed]
88
    002: CLOSE_ZONE empty to empty...                                                                                   [Passed]
89
    003: FINISH_ZONE empty to full...                                                                                   [Passed]
90
    004: RESET_WRITE_PTR empty to empty...                                                                              [Passed]
91
    005: OPEN_ZONE implicit open to explicit open...                                                                    [Passed]
92
    006: CLOSE_ZONE implicit open to closed...                                                                          [Passed]
93
    007: FINISH_ZONE implicit open to full...                                                                           [Passed]
94
    008: RESET_WRITE_PTR implicit open to empty...                                                                      [Passed]
95
    009: OPEN_ZONE empty to explicit open to explicit open...                                                           [Passed]
96
    010: CLOSE_ZONE empty to explicit open to empty...                                                                  [Passed]
97
    011: FINISH_ZONE empty to explicit open to full...                                                                  [Passed]
98
    012: RESET_WRITE_PTR empty to explicit open to empty...                                                             [Passed]
99
    013: OPEN_ZONE implicit open to explicit open to explicit open...                                                   [Passed]
100
    014: CLOSE_ZONE implicit open to explicit open to closed...                                                         [Passed]
101
    015: FINISH_ZONE implicit open to explicit open to full...                                                          [Passed]
102
    016: RESET_WRITE_PTR implicit open to explicit open to empty...                                                     [Passed]
103
    017: OPEN_ZONE closed to explicit open...                                                                           [Passed]
104
    018: CLOSE_ZONE closed to closed...                                                                                 [Passed]
105
    019: FINISH_ZONE closed to full...                                                                                  [Passed]
106
    020: RESET_WRITE_PTR closed to empty...                                                                             [Passed]
107
    021: OPEN_ZONE full to full...                                                                                      [Passed]
108
    022: CLOSE_ZONE full to full...                                                                                     [Passed]
109
    023: FINISH_ZONE full to full...                                                                                    [Passed]
110
    024: FINISH_ZONE full to empty...                                                                                   [Passed]
111
    025: OPEN_ZONE empty to empty (ALL bit set)...                                                                      [Passed]
112
    026: CLOSE_ZONE empty to empty (ALL bit set)...                                                                     [Passed]
113
    027: FINISH_ZONE empty to empty (ALL bit set)...                                                                    [Passed]
114
    028: RESET_WRITE_PTR empty to empty (ALL bit set)...                                                                [Passed]
115
    029: OPEN_ZONE implicit open to implicit open (ALL bit set)...                                                      [Passed]
116
    030: CLOSE_ZONE implicit open to close (ALL bit set)...                                                             [Passed]
117
    031: FINISH_ZONE implicit open to full (ALL bit set)...                                                             [Passed]
118
    032: RESET_WRITE_PTR implicit open to empty (ALL bit set)...                                                        [Passed]
119
    033: OPEN_ZONE empty to explicit open to explicit open (ALL bit set)...                                             [Passed]
120
    034: CLOSE_ZONE empty to explicit open to empty (ALL bit set)...                                                    [Passed]
121
    035: FINISH_ZONE empty to explicit open to full (ALL bit set)...                                                    [Passed]
122
    036: RESET_WRITE_PTR empty to explicit open to empty (ALL bit set)...                                               [Passed]
123
    037: OPEN_ZONE implicit open to explicit open to explicit_open (ALL bit set)...                                     [Passed]
124
    038: CLOSE_ZONE implicit open to explicit open to closed (ALL bit set)...                                           [Passed]
125
    039: FINISH_ZONE implicit open to explicit open to full (ALL bit set)...                                            [Passed]
126
    040: RESET_WRITE_PTR implicit open to explicit open to empty (ALL bit set)...                                       [Passed]
127
    041: OPEN_ZONE closed to explicit open (ALL bit set)...                                                             [Passed]
128
    042: CLOSE_ZONE closed to closed (ALL bit set)...                                                                   [Passed]
129
    043: FINISH_ZONE closed to full (ALL bit set)...                                                                    [Passed]
130
    044: RESET_WRITE_PTR closed to empty test (ALL bit set)...                                                          [Passed]
131
    045: OPEN_ZONE full to full (ALL bit set)...                                                                        [Passed]
132
    046: CLOSE_ZONE full to full (ALL bit set)...                                                                       [Passed]
133
    047: FINISH_ZONE full to full (ALL bit set)...                                                                      [Passed]
134
    048: RESET_WRITE_PTR full to empty (ALL bit set)...                                                                 [Passed]
135
</code></pre>
136
137
<pre><code class="C">
138
shehbaz@bluestore:~$ sudo zbc_info /dev/sg1
139
Device /dev/sg1: ATA ST8000AS0022-1WL SN01 
140
    ATA ZAC interface, Host-aware disk model
141
    15628053168 logical blocks of 512 B
142
    1953506646 physical blocks of 4096 B
143
    8001.563 GB capacity
144
</code></pre>